Вообще здесь вопрос  звучит более широко:
 
Как зная ссылку на переменную (scalar, array or hash) найти её название?
Perl интерпретатор как то же находит, справляется с этим.
Как сейчас помню,
sub get_key_name {
my $val = shift;
my ($pkg, $_, $_) = caller();
return traverse_hashes($val, %{$pkg."::"});
}
 
sub traverse_hashes {
my ($val, $hash) = @_;
while (my ($k, $v) = each %$hash) {
return $k if refaddr($v) == refaddr($val);
next unless ref $v eq "HASH";
my $ret = tracerse_hashes($val, $v);
return $ret if $ret;
}
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить