Hãy có một cái nhìn tại
my ($key) = %h;
Hashes và mảng không phải là khác nhau như họ có vẻ. Cả hai đều liên quan chặt chẽ đến danh sách. Sử dụng danh sách là cách chúng được khởi tạo bình thường và =>
chủ yếu là bí danh cho ,
với sự khác biệt duy nhất là nó xử lý toán hạng trái của nó được trích dẫn hoàn toàn. Perl dừng chỉ khi bạn quên báo giá của toán hạng bên phải của nó, do đó, cả hai dòng sau sẽ được chấp nhận:
my %h = (a=>b=>c=>'d');
my @a = (a=>b=>c=>'d');
Vâng, bạn đã bao giờ thử điều này chưa?
my %h = ('key');
... hay này:
my @a = ('value');
my %h = @a;
Các băm trên có thể nhìn một chút lạ, nhưng nó chỉ là một chìa khóa với giá trị undef
.
Bởi vì đó là nhiều khả năng là bạn sẽ hỏi làm thế nào để truy cập giá trị duy nhất, tôi đề nghị sử dụng:
my ($key, $value) = %h;
... hoặc thậm chí đơn giản hơn:
my ($key) = %h;
Đó là những gì chúng tôi bắt đầu với .
Có một [giải pháp dễ dàng hơn nhiều] (http://stackoverflow.com/a/42809337/2932052) hơn tất cả các câu trả lời được đưa ra cho đến nay (bao gồm cả câu trả lời được chấp nhận). Nó cũng ngắn hơn và dễ hiểu và dễ nhớ. – Wolf