LINUX.ORG.RU

perl, array в hash


0

0

а можно как-нибудь в perl сделать что-то типа этого: %hash = ( "i1" => ("a1","a2","a3"), "i2" => ("1", "2") и т.п. как не странно, но такое что-то не получается :(

anonymous

Re: perl, array в hash

Все получается, в 5ом, по крайней мере!
@a=("COOL","SUUX");
%hash=("E1" => @a , "E2" => ("HE-HE",":)"));
print $hash{"E1"}[0]; # Напишет COOL
print $hash{"E2"}[1],"\n" # Напишет :)

Вот и ВСе! ВСЕ работает! И вообще - Объясняй подробнее.

root_
()

Re: perl, array в hash

Но этот пример хорош, если ты точно знешь сколько у тебя элементов,
а можно так( намного лучше)
@a=("COOL","SUXX");
%hash=("Elem" => \a@); #!!!!!!!!! Это ссылка на массив @a
print @{$hash{\'Elem\'}}, "/n" #Вот и вывод на экран!

root_
()

Re: perl, array в hash

у меня perl --version говорит: 5.004_04 (из поставки debian 2.0) не работает как ты написал :( так он пустое место печатает: print $hash{"E1"}[0] а так первый элемент: print $hash{"E1"}

anonymous
()
Ответ на: Re: perl, array в hash от anonymous

Re: Re: perl, array в hash

А как Дела с ссылками Обстоят - Должно Работать!

root_
()

Re: perl, array в hash

Скобки правильные рисовать надо: %hash=('key'=>['a','b','c'],'key2'=>['d','e','f']); Т. е. значением элемента хэша не может быть array, но может быть ссылка на array. Поэтому вместо круглых скобок (array constructor) нужно использовать либо квадратные (anonymous array reference constructor) или фигурные( тогда получится ссылка на хэш)

vitus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.