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