有没有办法从Perl';返回变量名;s最大函数?

有没有办法从Perl';返回变量名;s最大函数?,perl,max,Perl,Max,使用Perl的List::Util模块,是否有方法从max()返回变量名以及实际值?例如: my $a = 1; my $b = 2; my $c = 3; my $max = max($a,$b,$c); 如何获得3以及变量名$c?我的意图是做如下事情: #psuedocode if(max is from $c) { print "Max from C"; } 或者可以使用一种方法来执行此操作,即不使用List::Util?您可以创建一个哈希,例如%h=(a=>1,b=>2,c=>3)

使用Perl的
List::Util
模块,是否有方法从
max()
返回变量名以及实际值?例如:

my $a = 1;
my $b = 2;
my $c = 3;

my $max = max($a,$b,$c);
如何获得3以及变量名
$c
?我的意图是做如下事情:

#psuedocode
if(max is from $c) {
print "Max from C";
}

或者可以使用一种方法来执行此操作,即不使用
List::Util

您可以创建一个哈希,例如
%h=(a=>1,b=>2,c=>3)
然后循环遍历键并保存max value和相应的键valueList::Util根本不知道它有变量。它只看到一个列表。它获取的排序/检查值也可以是一个或多个数组,或者是函数的返回值。恐怕那里运气不好。
sub pairmax {
    my $name = shift;
    my $max  = shift;
    while (@_) {
       if ($_[1] > $max) {
          $name = shift;
          $max  = shift;
       } else {
          shift;
          shift;
       }
    }

    return wantarray ? ($name,$max) : $name;
}

my $key_of_max = pairmax( a=>$a, b=>$b, c=>$c );

my ($key_of_max, $max) = pairmax( a=>$a, b=>$b, c=>$c );