Доступ к аргументам в 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};