Программирование > Perl
Народ, подскажите
polo:
Требуется сделать следующее на перле:
Пердаем подпраграмме хеш (например %hesh),
подпрограмма должна изменить некоторые элементы хеша и вернуть измененный хеш.
Кто подскажет решение?
Chs:
--- Цитировать ---polo (03-04-2001 00:10):
Требуется сделать следующее на перле:
Пердаем подпраграмме хеш (например %hesh),
подпрограмма должна изменить некоторые элементы хеша и вернуть измененный хеш.
Кто подскажет решение?
--- Конец цитаты ---
В подпрограмму передать ссылку на хеш.
polo:
Можно подробнее.
Например имеем следующее:
%hesh=&podprog(%hesh); #предпологается что хеш уже определен
sub podprog {
%hesh=shift;
сдесь изменяем некоторые елементы, как это можно сделать;
return %hesh; #вернуть модифицированный хеш
Chs:
--- Цитировать ---polo (03-04-2001 21:17):
Можно подробнее.
Например имеем следующее:
%hesh=&podprog(%hesh); #предпологается что хеш уже определен
sub podprog {
%hesh=shift;
сдесь изменяем некоторые елементы, как это можно сделать;
return %hesh; #вернуть модифицированный хеш
--- Конец цитаты ---
Можно:
my %hash;
&podprog(\\%hash);
sub podprog {
my $hr=shift;
$$hr{\'abc\'} = \'edf\';
}
polo:
Все равно не могу разобраться, изложу все полностью, кто знает решение напишите пожалуйста код:
#допустим имеем хеш
%hesh (
name => \'ivan \',
first name=> \'badi\',
city => \'Moskva\',
Country => \'Rossia\'
);
#далее иммее подпрограмму
sub podprog {
%hesh = &edit_hesh(%hesh); #изменяяем хеш
&other(%hesh); #выполняяем другие операции с измененым хешем хешем
}
sub edit_hesh {
#как написать эту подпрограмму так что-бы она изменила #эллементы
#name => \'ivan \',
#first name=> \'badi\',
#на
#name => \'ivan \',
#first name=> \'badi\',
#и вернула измененный хеш
}
Навигация
Перейти к полной версии