Доступ к аргументам в Perl Hash Ref

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

получить доступ к аргументам в пределах хэшрефа.

Так что, если бы я хотел получить доступ к записи, я бы

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

Если бы я хотел получить доступ к списку, я бы

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

Как бы я получил доступ к Passedargs? Если бы я просто хотел получить доступ к "чему-то" или "другому"?

2 ответа

Решение

Если вы хотите назначить значения в listing к массиву, обратите внимание, что вам нужно разыменовать его:

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

Для доступа к полям в passedargsВам просто нужно использовать следующий синтаксис:

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

Для получения более подробной информации, смотрите: perldsc - Perl Data Structures Cookbook

$args->{passedargs} сам по себе hashref, так что вы бы сделали:

my $something = $args->{passedargs}->{something};
Другие вопросы по тегам