Приветствую Уважаемое Perl-сообщество, Возможно это покажется тривиальным/хорошо известным поведением функции delete применительно к хешам, но оставлю на всякий случай.
Итак имеется хеш %a:
print Dumper \%a;
$VAR1 = {
'11' => {
'24' => {
'31' => 41
},
'23' => {
'33' => 43
},
'22' => {
'32' => 42
},
'21' => {
'31' => 41
}
}
};
из которого надо удалить, к примеру несколько внутренних элементов,
например: $a{11}{21}{31} и $a{11}{24}{31}
Выполняем :
delete $a{11}{21,24}{31}
но удаления не происходит :(
а добавляется новый внутренний загадасный элемент:
print Dumper \%a;
$VAR1 = {
'11' => {
'23' => {
'33' => 43
},
'22' => {
'32' => 42
},
'21' => {
'31' => 41
},
'24' => {
'31' => 41
},
'21 24' => {}
}
};
Или например так:
delete $a{11}{keys %{$a{11} } }{31}
Опять добавляется новый элемент.
print Dumper \%a;
$VAR1 = {
'11' => {
'5' => {},
'21' => {
'31' => 41
},
'23' => {
'33' => 43
},
'22' => {
'32' => 42
},
'21 24' => {},
'24' => {
'31' => 41
}
}
};
Как вы думаете в чём причина такого поведения delete
?
С уважением,
Александр.
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
