在Perl中有一些專門用于處理列表數據的模塊,比如說List::Util模塊,該模塊包含在標準庫中,能提供各種高效的常見列表處理工具。因其用C語言來實現,速度一般都挺快!
【例01】掃描符合條件的某個列表,并取出第一個符合條件的
常規做法:
代碼如下:
use 5.010;
my @names = qw(Wendy Jerry Betty Wendy Alice);
foreach (@names) {
if (//bWendy/b/i) {
$match = $_;
last;
}
}
say $match;
如果改用List::Util模塊提供的first子程序,就要簡單的多
代碼如下:
use List::Util qw(first);
my $match = first {//bWendy/b/i} @names; #找到第一個Wendy即終止
如果換成數字的話,比如要求
【例02】求1到1000之間的和
常規做法:
代碼如下:
use 5.010;
my $total = 0;
foreach (1..1000) {
$total += $_;
}
say $total; #結果500500
如果改用List::Util模塊提供的sum子程序,同樣很簡單:
代碼如下:
use List::Util qw(sum);
my $total = sum(1..1000); #結果500500
【例03】求一組數字的最大值與最小值.
常規做法:
代碼如下:
#! /usr/bin/perl;
use utf8;
sub max {
my($max_so_far) = shift @_; #數組中第一個值,暫時當成最大值。
foreach(@_){ #遍歷數組@_
if($_>$max_so_far){ #看其它元素是否有比$max_so_far大的值。
$max_so_far = $_;} #如果有話,更新最大值變量
}
$max_so_far;
}
my $_MaxData = &max(2,3,8,5,10);
print $_MaxData; #結果為10
如果改用List::Util模塊提供的max子程序,則非常簡單:
代碼如下:
use List::Util qw(max);
my $max = max(2, 3, 8, 5, 10);
print $max; #結果為10
新聞熱點
疑難解答