Tôi có một câu hỏi mà có vẻ cơ bản, nhưng tôi không thể tìm ra. Nói rằng tôi có một tham chiếu băm trong Perl. Tôi muốn nhận được một mảng các giá trị thông qua một mảng các khóa.Perl: Hash truy cập ref mảng của các phím
Sau đây là cách nó muốn làm việc với một băm, không phải là một tài liệu tham khảo băm:
my %testHash = ("a" => 1, "b" => 2, "c" => 3);
my @testKeys = ("a", "b", "c");
my @testValues = @testHash{@testKeys};
Bây giờ giả sử tôi có một tham chiếu băm,
my $hashRef = {"a" => 1, "b" => 2, "c" => 3};
Tôi đã thử hai cách sau đây:
my @values = @{$hashRef->{@testKeys}};
my @values = $hashRef->{@testKeys};
Nhưng không đúng. Có một cách chính xác, hoặc tôi chỉ cần phải dereference băm ref mỗi khi tôi muốn làm điều này?
Trong trường hợp này, '@ $ hashref {}' @testKeys làm việc quá. Tôi đã từng thích '{}' niềng răng càng rõ ràng hơn, nhưng bây giờ tôi sẽ nghiêng về phía biến thể ít ồn ào hơn. – ephemient
@ephemient Cảm ơn bạn đã giúp tôi cải thiện câu trả lời. –
Ahh, tôi đoán tôi đã bị mắc kẹt bởi sự thiếu hiểu biết của tôi rằng mũi tên chỉ là một cách viết tắt thuận tiện. –