LINUX.ORG.RU

perl - работат с хешем


0

0

%hash=();
$i=0;
@key=('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
@value=('tea','shugar');
while ($i<6)
{
%hash=(%hash,$key[$i],@value);
$i+=1;
}

~>perl -d test
main::(test:3): %hash=();
DB<1> n
main::(test:4): $i=0;
DB<1>
main::(test:5): @key=('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
DB<1>
main::(test:6): @value=('tea','shugar');
DB<1>
main::(test:7): while ($i<7)
main::(test:8): {
DB<1>
main::(test:9): %hash=(%hash,$key[$i],@value);
DB<1>
main::(test:10): $i+=1;
DB<1> p %hash
shugarMondaytea
DB<2>
main::(test:7): while ($i<7)
main::(test:8): {
DB<2>
main::(test:9): %hash=(%hash,$key[$i],@value);
DB<2>
main::(test:10): $i+=1;
DB<2> p %hash
MondayteashugarTuesdaytea
DB<3>
main::(test:7): while ($i<7)
main::(test:8): {
DB<3>
main::(test:9): %hash=(%hash,$key[$i],@value);
DB<3>
main::(test:10): $i+=1;
DB<3> p %hash
WednesdayteashugarMondayteaTuesdaytea

почему так получается? как реализовать запись в хешь ключа и значения, которое являемся массивом.


> %hash=(%hash,$key[$i],@value);

Скажи-ка, ты это сам написал или где увидел?

P.S. Value может быть ссылкой на массив
     В крайнем случае, использовать join/split для 
     упаковки массива в строку

sdio ★★★★★
()
Ответ на: комментарий от sdio

сам написал, а что?

join/split - это получается очень громоздко, но все равно спасибо... может в конце концов так и сделаю в своей программе.

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