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