Нужна помощь в получении массива Perl из скалярного контекста
У меня есть массив Perl мне нужно хранить следующим образом:
$self->{spec}->{allImages} = @allImages;
Затем мне нужно получить содержимое позже:
print Dumper($self->{spec}->{allImages});
Это дает:
$VAR1 = 10;
(количество элементов в массиве).
Как вырваться из скалярного контекста и вернуть $self->{spec}->{allImages} в виде списка?
2 ответа
Решение
Каждое хеш-значение может быть только скалярным.
Вы должны сохранить ссылку на массив:
$self->{spec}->{allImages} = \@allImages;
http://perldoc.perl.org/perlreftut.html даст вам больше учебника.
Вам необходимо изменить назначение:
$self->{spec}->{allImages} = \@allImages;
Это создает массив ref, который вы можете использовать.