Программирование > Perl

Народ, подскажите

<< < (2/4) > >>

Chs:

--- Цитировать ---polo (04-04-2001 22:31):
Все равно не могу разобраться, изложу все полностью, кто знает решение напишите пожалуйста код:

#допустим имеем хеш
%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\',
#и вернула измененный хеш
}
--- Конец цитаты ---
Решение чуть выше.:):)

cj:

--- Цитировать ---polo (04-04-2001 22:31):
Все равно не могу разобраться, изложу все полностью, кто знает решение напишите пожалуйста код:

#допустим имеем хеш
%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\',
#и вернула измененный хеш
}
--- Конец цитаты ---

1. Кончай баловаться с передачей хеша по-значению.
2. Это делается так:

# Создаем ссылку на анонимный хеш. Значения полей изменить по-вкусу

my $hash = { "Name" => "Ivan", "Country" => "Russia", "City" => "Moscow" };

Main();

# Имя функции - любое :-)
sub Main
{
    AlterHash($hash);
    ChopHash($hash);
}

# Функция, которая что-то делает с хэшем
sub AlterHash($)
{
    my $h = shift();
    $h->{"Name"} = "$h->{\'Name\'}";
    $h->{"City"}   = "$h->{\'City\'}";

    # Все. Возвращать ничего не надо, хеш уже изменен.
}

# Надеюсь, теперь все ясно?

polo:
А как в my $hesh поместить %hesh  а то я написал
my $hesh = {%hesh};
и ничего.

polo:

--- Цитировать ---polo (05-04-2001 23:20):
А как в my $hesh поместить %hesh  а то я написал
my $hesh = {%hesh};
и ничего.
--- Конец цитаты ---
my $hesh = keys %hesh;

polo:
Поставлю вопрос по другому:
%hesh это данные переданные из формы, требуется обработать некоторые поля (удалить хтмл теги), а потом записать результаты в файл, это делает подпрограмма которая разделяет эллементы хеша и вписывает их в файл (el1|el2|и т.д.|). Навернека здесь другое решение.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии