ПРИМЕЧАНИЕ: Ссылки всегда скалярные, так как содержат адрес (вроде бы аккуратно)
Когда вы создаете вложенную структуру данных, просто помните, что в Perl нам не нужнобеспокоиться о том, как распределено пространство, сколько места выделено.Довольно аккуратно обрабатывать свое собственное анонимное хранилище.
Но, всегда помните правила большого пальца для создания такого хранилища, как это,
Чтобы создать анонимный массив, используйте квадратные скобки вместо скобок:
$ra = [ ];
Чтобы создать анонимный хеш, используйте квадратные скобки вместо квадратных скобок:
$rh = { };
И это все, что есть.
Теперь, то, что вы написали, было чем-тонапример,
my %h={};
По сути, вы создаете хеш и инициализируете его ссылкой, которая является скалярной.
Вот почему ваша программа жаловалась на это,
Простоудалите эту строку и перепишите свой код следующим образом:
#!/usr/bin/perl
use strict;
use warnings;
my $h={"1" => {
a => -1,
b => -1,
c => [
{
d => -1,
e => -1,
},
],
}
};
Perl позаботится обо всем остальном .. Наслаждайтесь Perl :):)