<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:large">Вообще то передаётся ссылка (фактически адрес)</div><div class="gmail_default" style="font-size:large"><br></div><div class="gmail_default" style="font-size:large"> \%{ $h{aa} } </div><div class="gmail_default" style="font-size:large"><br></div><div class="gmail_default" style="font-size:large">, а не просто значение.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 1 окт. 2024 г. в 14:37, Коваль Вячеслав <<a href="mailto:theathlet@yandex.ru">theathlet@yandex.ru</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Для решения задачи все равно нужен доступ к исходному хэшу, т.к. в изначальном коде мы передаем уже обращаемся по ключу и в функцию уже передается значение, т.е. какой-то хэш или массив или значение. А чтобы получить ключ, то нужно рекурсивно пройтись по исходному хэшу и сравнить Scalar::Util::refaddr всех значений с исходным.</div><div> </div><div>----------------<div>01.10.2024, 13:47, "Alessandro Gorohovski via Moscow-pm" <<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a>>:</div><div>Кому: Moscow.pm group (<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a>);</div><div>Копия: Alessandro Gorohovski (<a href="mailto:an.gorohovski@gmail.com" target="_blank">an.gorohovski@gmail.com</a>);</div><div>Тема: [Moscow.pm] Узнать родительский ключ по ссылке;</div><div> </div><blockquote><div><div style="font-size:large">Нет, это не вариант.</div><div style="font-size:large">Функция не знает о хеше %h и его структуре, совсем не знает :)</div><div style="font-size:large"> </div><div style="font-size:large">Представьте, что этот хеш может быть не 2х уровневый, а много-много-вложенный по уровням</div><div style="font-size:large">и </div><div style="font-size:large"><span style="font-size:small">$ref eq $value</span> </div><div style="font-size:large">может случится на другом уровне.</div><div style="font-size:large"> </div></div> <div><div>вт, 1 окт. 2024 г. в 13:03, Steffen Winkler via Moscow-pm <<a href="mailto:moscow-pm@pm.org" rel="noopener noreferrer" target="_blank">moscow-pm@pm.org</a>>:</div><blockquote style="border-left:1px solid rgb(204,204,204);margin:0px 0px 0px 0.8ex;padding-left:1ex">use strict;<br>use warnings;<br><br>my %h = ( a => { b=> 1}, aa=> {bb=>2, }, );<br><br>sub where_key {<br>     my $ref = shift;<br><br>     while ( my ($key, $value) = each %h ) {<br>         $ref eq $value<br>              and return $key;<br>     }<br><br>     return;<br>}<br><br>my $k = where_key( $h{aa} );<br>print $k;<br>exit;<br><br><br>--<br>Moscow.pm mailing list<br><a href="mailto:moscow-pm@pm.org" rel="noopener noreferrer" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org/" rel="noopener noreferrer" target="_blank">http://moscow.pm.org</a></blockquote></div>,--<br>Moscow.pm mailing list<br><a href="mailto:moscow-pm@pm.org" rel="noopener noreferrer" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org/" rel="noopener noreferrer" target="_blank">http://moscow.pm.org</a></blockquote><div> </div><div> </div><div> </div><div> </div></div><div>-- <br>Яндекс.Почта — надёжная почта</div><div><a href="http://mail.yandex.ru/neo2/collect/?exp=1&t=1" target="_blank">http://mail.yandex.ru/neo2/collect/?exp=1&t=1</a></div></blockquote></div></div>