Иван, Спасибо! ср, 28 нояб. 2018 г. в 22:14, Иван Бессарабов <[email protected]>:
> Тут дело не в delete > > https://perldoc.perl.org/perldata.html#Multi-dimensional-array-emulation > > https://perldoc.perl.org/perlvar.html#%24%3b > > > On Wed, 28 Nov 2018 at 22:05, Alessandro Gorohovski via Moscow-pm < > [email protected]> wrote: > >> Приветствую Уважаемое 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 >> >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
