В Perl, parens не создают массивы. Они только когда-либо разбираются в приоритете. Hashref
{ 'items' => ('home', 'chair', 'table') }
такая же, как
{ 'items' => 'home', 'chair' => 'table' }
Если вы хотите поместить массив в хэш, вы должны использовать ссылку на массив, который вы можете создать с [ ... ]
:
my $hash = { 'items' => ['home', 'chair', 'table'] }
Теперь, если вы запустите свой код, вы получите что-то вроде
ARRAY(0x1234567)
как мощность. Это путь ссылки распечатываются. Нам нужно разыменовать его, чтобы присоединиться к элементам. Мы можем сделать это с помощью оператора разыменования массива @{ ... }
. Тогда:
print join(',', @{ $hash->{items} }), "\n";
Чтобы узнать больше о ссылках и сложных структур данных в Perl, прочтите
Удивительный ответ со всеми деталями, в которых я нуждался. Спасибо, амон. :) – Sashwat