Нет, это не вариант.
Функция не знает о хеше %h и его структуре, совсем не знает :)

Представьте, что этот хеш может быть не 2х уровневый, а
много-много-вложенный по уровням
и
$ref eq $value
может случится на другом уровне.


вт, 1 окт. 2024 г. в 13:03, Steffen Winkler via Moscow-pm <[email protected]
>:

> use strict;
> use warnings;
>
> my %h = ( a => { b=> 1}, aa=> {bb=>2, }, );
>
> sub where_key {
>      my $ref = shift;
>
>      while ( my ($key, $value) = each %h ) {
>          $ref eq $value
>               and return $key;
>      }
>
>      return;
> }
>
> my $k = where_key( $h{aa} );
> print $k;
> exit;
>
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить