我有两个包含整数的数组。例如:
@arr1 = ( 2, 5, 6)
@arr2 = ( 1, 4, 7)
如何找到这两个数组之间的最小值?
答案 0 :(得分:5)
使用List::Util模块的min
功能:
use warnings;
use strict;
use List::Util qw( min );
my @arr1 = ( 2, 5, 6 );
my @arr2 = ( 1, 4, 7 );
print min(@arr1, @arr2), "\n";
输出:
1
没有模块,使用sort
函数:
my ($min) = sort { $a <=> $b } @arr1, @arr2;
print "$min\n";
答案 1 :(得分:1)
currently accepted answer内存效率低。
如果@arr1
和@arr2
很大,那么构建列表(@arr1, @arr2)
只是为了将其传递给min
的影响可能很大。
相反,请使用:
use strict;
use warnings;
use List::Util qw( min );
my @arr1 = ( 2, 5, 6 );
my @arr2 = ( 1, 4, 7 );
print min( min(@arr1), min(@arr2) ), "\n";