如何找到的最大数量在Perl阵列

任务。 在Perl,该程序有一系列 @arr (第一三个字母的单词"阵列"). 需要找到的最大数量,是这一阵列。

最好的方式来解决这个问题是,使用该功能 max 从图书馆 List::Util. 库 List::Util 来Perl,所以如果你有Perl,这种图书馆是提供给另外安装什么都没有。

这是一个示例的程序发现和显示的最大的数字阵列,其中包含的数字:

▶ Run
#!/usr/bin/perl

use List::Util qw(max);

my @arr = (1, 2, -100, 8, 0);

print max(@arr);

该程序将显示的数字是8. (执行中的代码浏览器 ).

当你连接一个图书馆,我们必须指出,我们将使用该功能 max: use List::Util qw(max);. 如果你只需要连接的图书馆 use List::Util;,该方案将发出一个错误 Undefined subroutine &main::max called at script.pl line 7..

在列没有元素

如果阵没有元素,然后 max 将返回 undef. 这是样品的程序 其中考虑到以下情况:

▶ Run
#!/usr/bin/perl

use List::Util qw(max);

my @arr;

my $max = max(@arr);

if (defined $max) {
    print $max;
} else {
    print "Empty array";
}

在这节目,我们储存的结果功能 max 中的变量,如果结果不是 undef,我们推断出这样的结果,如果 undef,我们推断出本案文在屏幕上。

我们在这里检查的结果功能 max,但这将有可能 知道这些元件阵列 ,如果项目的数量为0,然后再执行你需要做什么情况下的一个空阵列。

工作的情况下排列的串

工作时的功能 max 从图书馆 List::Util 有一个细微之处。 实际上 max 返回的最大数量从阵列,并且元,其查看数字是最大的。

这里就是一个例子。 结果 max(-100, 'ABC', -4) 会行 'ABC'. 发生这种情况由于这样的事实, 该数值的串 'ABC' 为零,零,是最大的价值在这一阵列, 因此,将结果是最高的数值。 在这个例子中,串 'ABC'.

另一个例子。 结果 max(1, 7, '10W') 会行 '10W'.

官方文件

这一段的出 perldoc List::Util  约的功能 max:

  max
        my $num = max @list;

    Returns the entry in the list with the highest numerical value. If the
    list is empty then "undef" is returned.

        $foo = max 1..10                # 10
        $foo = max 3,9,12               # 12
        $foo = max @bar, @baz           # whatever

其他文章