|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Babanov 2:5020/5609.69 24 Jun 2001 01:51:30 To : George Subject : Re: Хэши --------------------------------------------------------------------------------
Юґullo George!
G> Как сложить два хеша следующим обpазом: если ключи совпали, то значением
G> для ключа становится массив из элементов, соответствующих данному ключу?
1. Hемного деструктивная методика:
while($k = each %h1) {
if(exists $h2{$k}) {
$h1{$k} = [ $h1{$k}, $h2{$k} ];
delete $h2{$k}; # (*)
}
}
%h = (%h1, %h2); # либо @h1{keys %h2} = values %h2;
2. Можно без (*), но тогда придется писать еще один цикл.
3. Взять keys %h1 \ keys %h2 (IIRC есть модуль для работы с множествами),
потом сделать @h1{разница} = @h2{разница}.
CYa!!!
ЪДВїЪДВВВДДДщщъъ ЪДВВВДї ЪїЪДВДДДДДДДДщщъъ ЪДДДД 2:5020/5609.69 ДДДї
іВіАґДЕ ґBabanov іВі ґВі іАґВіST BERSERKER і babanov@earthlink.net і
... Еще наше поколение будет жить при Виагре! [предп. из писем Ильича к HКК]
---
* Origin: Our governor can beat up your governor! (2:5020/5609.69)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/47303b3590b8.html, оценка из 5, голосов 10
|