在Perl Hash参考中访问args

时间:2014-09-15 17:12:51

标签: perl hashref hash-reference

$self->doSomething({
    record     => $record,
    listing    => [ $foo, $bar, $baz ],
    passedargs => { something => $val, another => $val2 }
});

访问hashref中的args。

所以,如果我想访问记录,我会

my $record = $args->{record};

如果我想访问列表,我会

my @listing = $args->{listing}; 

我如何访问Passedargs?如果我只想访问"某事"或"另一个"?

2 个答案:

答案 0 :(得分:3)

如果您想将listing中的值分配给数组,请注意您需要取消引用它:

my @listing = @{ $args->{listing} };

要访问passedargs中的字段,只需使用以下语法:

my $something = $args->{passedargs}{something};

有关详细信息,请查看:perldsc - Perl Data Structures Cookbook

答案 1 :(得分:1)

$args->{passedargs}本身就是一个hashref,所以你可以这样做:

my $something = $args->{passedargs}->{something};