巧用 Perl 函数处理数组(一)

十一月 7, 2011

以下这些函数来自于 List::Util 模块,这是 Perl 内置的模块,不用白不用!

(1)求数组的和:不需要一个一个地累加,直接调用 sum 函数

use List::Util qw/sum/;
my @array = (10, 20, 30, 40);
my $sum = sum @array;       # 得到 100

(2)求数组的最大、最小值:不需要逐个比较,直接调用 max 和 min 函数

use List::Util qw/max min/;
my @array = (10, -1, 6, 25, 8);
my $max = max @array;           # 得到 25
my $min = min @array;           # 得到 -1

(3)如果是按照字符串排列的最大、最小值呢?调用 maxstr 和 minstr 函数

use List::Util qw/maxstr minstr/;
my @array = ("Beijing", "Shanghai", "Guangzhou", "Chengdu", "Nanjing");
my $maxstr = maxstr @array;     # 得到 Shanghai
my $minstr = minstr @array;     # 得到 Beijing

还有一个不得不说的秘密:这些函数都是经过 C 优化的,所以执行速度不但不会慢,反而非常快,嗖嗖的!

(未完待续啊!是不是觉得这些函数也不咋地?其实下节才更精彩。人算不如天算,关键时节居然感冒了zzzzzzzzzzz)

posted in Perl by billzt

Follow comments via the RSS Feed | Leave a comment | Trackback URL

9
说点什么

5 Comment threads
4 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
6 Comment authors
Recent comment authors
  Subscribe  
最新 最旧 得票最多
提醒
游客

CPAN就是个海底捞,好多宝

游客

貌似很优雅的说

游客
billzt

@Mucid, 嗯,优雅的不得了啊

游客

额。。有点不太习惯这种语法

游客
billzt

@freetstar, 对于新手来说比较熟悉吧

游客
frewise

很方便啊

游客
billzt

@frewise, 是啊,你想要多少简单就有多少简单

游客
belter

请问一下这个可以求数组的平均值吗?

游客
billzt

@belter, 可以折中一下:总和/数目 就行

 

Copyright © 2010-2017 | Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org