Как извлечь несколько значений из хеш-ссылки Perl?

Как я могу распаковать хэш-ссылку Perl на несколько именованных скалярных переменных?

Я видел, как это было сделано, но не могу заставить это работать.

Предполагая, что $hashref как дано, и определение от $arg1 до $arg3, вот моя попытка:

my $hashref = { arg1 => 'val1', arg2 => 'val2', arg3 => 'val3',};
my ($arg1,$arg2,$arg3) = @{%$hashref}[qw(arg1 arg2 arg3)]; 

person null    schedule 31.07.2019    source источник
comment
Видимо, я задал тот же вопрос 7 лет назад - здесь stackoverflow.com/questions/13657103   -  person null    schedule 21.11.2019


Ответы (1)


Ты нуждаешься в этом

my ($arg1,$arg2,$arg3) = @{$hashref}{qw(arg1 arg2 arg3)};

Это хеш-срез против хеш-ссылки

person JGNI    schedule 31.07.2019
comment
идеально. Принято. - person null; 31.07.2019