Нужна помощь в получении массива 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, который вы можете использовать.

Другие вопросы по тегам