Làm thế nào để tìm số cặp của các yếu tố trong một Perl băm

Nhiệm vụ. Trong chương trình trong ngôn ngữ Perl là băm. Bạn cần phải tìm ra có bao nhiêu cặp giá trị trong đó.

Ví dụ, băm này là cần thiết để thiết lập để 1:

my %h = (
    a => 'AAA',
);

Và như vậy cho một băm, bạn cần để có được giá trị 3:

my %h = (
    a => 'AAA',
    b => 'BBB',
    c => 'CCC',
);

Quyết định

Chuẩn giải pháp cho vấn đề này là lần đầu tiên nhận tất cả các chìa khóa của băm bằng cách sử dụng keys, và sau đó để đếm số chìa khóa bằng cách sử dụng vô bối cảnh. Đây là kịch bản đầy đủ:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 'AAA',
    b => 'BBB',
);

my $number = scalar keys %h;

print $number;

Kịch bản sẽ hiển thị các số 2. scalar keys %h là giống như scalar(keys(%h)).

Dung dịch này hoạt động trên tất cả phiên bản của Perl. Và thường quyết định này là tốt nhất.

Quyết định ở phiên bản mới của Perl

Perl 5.26 số cặp giá trị trong băm có thể thu được đơn giản bằng cách sử dụng scalar %h.

Và điều này đã dẫn đến quán giữa làm thế nào để có được số của các yếu tố trong mảng scalar @arr và khi đến số cặp giá trị trong băm scalar %h. Nó là một điều đáng tiếc rằng hành vi này đã không được tạo ra ban đầu.

Nếu bạn sử dụng scalar %h trong Perl sớm hơn 5.26, kết quả của hoạt động này là một phần nhỏ của loài 1/8. (một lời giải thích của những phần này có nghĩa). Vì này nhiều hơn một lựa chọn đáng tin cậy cho việc tìm kiếm số lượng các đôi trong các băm vẫn là sự lựa chọn scalar keys %h.

Chủ đề liên quan

Các bài viết khác