Tôi vẫn đang cố gắng phân loại dereferencing băm của mình. Vấn đề hiện tại của tôi là bây giờ tôi đang đi qua một hashref cho một phụ, và tôi muốn dereference nó trong phụ đó. Nhưng tôi không tìm đúng phương pháp/cú pháp để làm điều đó. Trong phần phụ, tôi muốn lặp lại các khóa băm, nhưng cú pháp cho một hashref không giống như một băm, mà tôi biết cách làm.Làm cách nào để tôi xem xét tham chiếu băm Perl đã được chuyển đến một chương trình con?
Vì vậy, những gì tôi muốn là để làm điều này:
sub foo {
%parms = @_;
foreach $keys (key %parms) { # do something };
}
nhưng với một hashref được thông qua tại thay vì một băm.
Bất kỳ con trỏ nào (không dự định chơi chữ) đều được chào đón.
Cảm ơn.
Sử dụng thay vì @_ đã thực hiện thủ thuật và tất nhiên, sử dụng vô hướng thay vì băm cho biến. Mã làm việc: sub foo { $ parms = shift; foreach $ key (phím% $ parms) {print "$ key: $$ parms {$ key} \ n"; } } Cảm ơn! – sgsax
'$ parms -> {$ key}' có thể hơi được ưa thích với '$$ parms {$ key}' – toolic
'shift' và' @ _' không liên quan. 'my ($ hashref) = @_;' cũng sẽ hoạt động. –