Можно ли в Hash добавить массив?%myhash=();
sub myproc {
my @myarray=();
my %myhash2=();
$myhash2=(num=>"1", text=>"One");
push(@myarray, \%myhash2);# Возможно ли это действие?
$myhash{'One'} = @myarray;
}
myproc;# Здесь далее должен быть обработан весь myhash и сохраненные в нем массивы
Насколько я понимаю, в хешах нельзя сохранять массивы?
Спасибо
>Можно ли в Hash добавить массив?
>
>%myhash=();
>
>sub myproc {
>
> my @myarray=();
my (@myarray, %myhash2);
> my %myhash2=();
> $myhash2=(num=>"1", text=>"One");
> push(@myarray, \%myhash2);
>
> # Возможно ли это действие?
> $myhash{'One'} = @myarray;
>}
>myproc;
>
># Здесь далее должен быть обработан весь myhash и сохраненные в нем
>массивы
>
>Насколько я понимаю, в хешах нельзя сохранять массивы?
:( отчего это ты так решил? Можно и даже нужно ;)
>СпасибоА смысл так усложнять?
push @{$myhash{One}},[@myarray];
вуаля ..см. Кэмэл г.9
>Можно ли в Hash добавить массив?Нельзя. Но можно добавить ссылку на массив. В зависимости от того, что ты хочешь получить (ссылку на анонимную копию массива либо ссылку на массив, чтобы изменения массива были видны через ссылку в hash), можно написать:
> # Возможно ли это действие?
[...]
> $myhash{'One'} = @myarray;$myhash{'One'}=\@myarray;
либо
$myhash{'One'} = [ @myarray ];
>Насколько я понимаю, в хешах нельзя сохранять массивы?perldoc perldsc
perldoc perlre
да все время хранил в хэшах массивы и в массивах - хэши...
http://www.dimas.ncn.ru/books/perl/perlshelf/cookbook/ch11_0...
http://www.dimas.ncn.ru/books/perl/perlshelf/prog/ch04_07.ht...просто лабуда у меня иногда возникала, с вложеностью, когда например
хэш1->массив1->хэш2->массив2
хэш1->массив1->строка
>да все время хранил в хэшах массивы и в массивах - хэши...В хэшах ты хранишь ссылки на массивы, а в массивах - ссылки на хэши.
Принципиально важно понимать разницу между
[] и () или
{} и ().Ссылки ты привёл верные, прочти их внимательнее.