如何找到最低数量在Perl阵列

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

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

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

▶ Run
#!/usr/bin/perl

use List::Util qw(min);

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

print min(@arr);

该程序将显示的数-100. (执行中的代码浏览器 ).

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

在列没有元素

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

▶ Run
#!/usr/bin/perl

use List::Util qw(min);

my @arr;

my $min = min(@arr);

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

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

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

工作的情况下排列的串

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

这里就是一个例子。 结果 min(12, 'ABC', 44) 会行 'ABC'. 发生这种情况由于这样的事实, 该数值的串 'ABC' 为零,零是最小数值在这一阵列。 结果 min 是其数值是最小的。 在这个例子中,串 'ABC'.

另一个例子。 结果 min(10, 7, '4H') 将行 '4H'.

官方文件

这一段的出 perldoc List::Util  有关的功能 min:

  min
        my $num = min @list;

    Similar to "max" but returns the entry in the list with the lowest
    numerical value. If the list is empty then "undef" is returned.

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

其他文章