有没有办法从Perl';返回变量名;s最大函数?
使用Perl的有没有办法从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)
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 );