加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl处理数组的一些技巧

发布时间:2020-12-16 00:13:47 所属栏目:大数据 来源:网络整理
导读:(1)数组求和:不用写循环,直接调用 sum 函数 use List::Util qw/sum/;my @a=qw(1 2 3 4 5 6 7 8);my $sum= sum @a ; # 得到 36 (2)求数组的最大、最小值:不需要逐个比较,直接调用 max 和 min 函数 use List::Util qw/max min/;my @a=qw(1 2 3 4 5 6 7

(1)数组求和:不用写循环,直接调用 sum 函数

use List::Util qw/sum/;
my @a=qw(1 2 3 4 5 6 7 8);
my $sum= sum @a ;          # 得到 36

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

use List::Util qw/max min/;
my @a=qw(1 2 3 4 5 6 7 8);
my $max= max @a ;          # 得到 8
my $min= min @a ;             # 得到 1

(3)输出数组指定位置元素

perl -e'@a=qw(1 2 3 4 5 6 7 8);print join("t",@a[1,2,4,6])' #得到 2 3 5 7

但是如果用标量来指定位置,这样的方法就不行了

perl -e '@a=qw(1 2 3 4 5 6 7 8);$b="1,6";print join("t",@a[$b])' #得到 2
需要借助eval函数
perl -e '@a=qw(1 2 3 4 5 6 7 8);$b="1,@a[eval($b)])' #得到 2 3 5 7
也可以通过数组指定位置
perl -e'@a=qw(1 2 3 4 5 6 7 8);@b=qw(1 2 4 6);print join("t",@a[@b])' #得到 2 3 5 7
打印文件指定列,可以直接在命令行里借助上述方法实现

perl -lane'print join("t",@F[1,3,4])' #打印第 2 3 4 5列

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读