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

Perl中数组应用详解

发布时间:2020-12-15 20:59:12 所属栏目:大数据 来源:网络整理
导读:Perl?数组应用详解 ? (2011-03-07 13:57:43) 转载 ▼ 标签: ? perl ? 数组函数 ? 教育 分类: ?Perl情缘 Perl的数组操作有四大常用函数,分别是: push:从数组的末尾加入元素。 pop :从数组的末尾取出元素 shift:? 从数组的开头取出元素 unshift:从数组

Perl?数组应用详解

? (2011-03-07 13:57:43)

转载
标签:?

perl

?

数组函数

?

教育

分类:?Perl情缘

Perl的数组操作有四大常用函数,分别是:

push:从数组的末尾加入元素。
pop :从数组的末尾取出元素

shift:?从数组的开头取出元素
unshift:从数组的开头加入元素


其应用具体如下:

1、push

#!/usr/bin/perl
use strict;
use warnings;

my @array = ();

for ( my $i = 1 ; $i <= 5 ; ++$i ) {
????push @array,$i;
????print "@arrayn";
}

output:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5


2、pop

#!/usr/bin/perl
####<pop>###

use strict;
use warnings;

my @array = ( 1,2,3,4,5,6 );

while (@array) {
????my $firstTotal = pop(@array);
????print "@arrayn";
}

output:

1 2 3 4 5
1 2 3 4
1 2 3
1 2
1


3、shift

#!/usr/bin/perl
####<shift>###

use strict;
use warnings;

my @array = ( 1,6 );

while (@array) {
????my $firstTotal = shift(@array);
????print "@arrayn";
}

output:

2 3 4 5 6
3 4 5 6
4 5 6
5 6
6

?

4、unshift

#!/usr/bin/perl
####<unshift>###

use strict;
use warnings;

my @array = ();

for ( my $i = 1; $i <= 5; ++$i ) {
???unshift( @array,$i );?????????# add $i to front of @array
???print "@arrayn";??????????????# display current @array
}

output:

1
2 1
3 2 1
4 3 2 1
5 4 3 2 1

?

另外,perl的数组还有其它重要函数,如splice、subtr、split、join、sort等。

5、splice 操作数组中间部分的函数,该函数主要有2个作用:

5.1、向数组中间插入内容

#!/usr/bin/perl

use strict;
use warnings;

my @array = ( 0 .. 6 );
my @array1 = ( 'a' .. 'd' );

my @replaced = splice( @array,@array1 );

print "replaced:?????@replacedn",
??????"with:?????????@array1n",
??????"resulting in: @arraynn";

output:

replaced:?????3 4
with:?????????a b c d
resulting in: 0 1 2 a b c d 5 6


5.2、删除数组元素

#!/usr/bin/perl

use strict;
use warnings;

my @array??= ( 0 .. 6 );
my @array1 = ( 'a' .. 'd' );

my @replaced = splice( @array,2 );

print "replaced:?????@replacedn",
??????"resulting in: @arraynn";

output:

replaced:?????3 4
with:?????????a b c d
resulting in: 0 1 2 5 6


删除到末尾

#!/usr/bin/perl

use strict;
use warnings;

my @array??= ( 0 .. 6 );
my @array1 = ( 'a' .. 'd' );

my @replaced = splice( @array,3 );

print "replaced:?????@replacedn",
??????"resulting in: @arraynn";

output:

replaced:?????3 4 5 6
resulting in: 0 1 2

?


6、join 连接列表中的各个分离的串,生成一个新的串,返回一个标量!

#!/usr/bin/perl

use strict;
use warnings;

my @array = ( 0 .. 6 );
my $replaced = join("n",@array);

print "$replacedn",

output:

0
1
2
3
4
5
6

?


7、split
把字符串进行分割并把分割后的结果放入数组中

?perl -le '$p=q(/var/ftp/test);@a=split(//ftp//,$p);print $a[1];'
test
?perl -le '$p=q(/var/ftp/test);@a=split(//ftp//,$p);print $a[0];'
/var

?

8、scalar
统计数组的长度,一般我们不用这个,直接将数组赋值给标量即可。

#!/usr/bin/perl

use strict;
use warnings;

my @array = ( 0 .. 6 );
my $count1 = @array;
my $count2 = scalar @array;

print "$count1n";
print "$count2n";

output:

7
7

?

9、sort
对数组元素进行排序

#!/usr/bin/perl

use strict;
use warnings;

my @array????= ( 0 .. 9 );
my @reversed = reverse @array;
print "Original:????@arrayn";
print "Reversed:????@reversednn";

# create an unsorted array of numbers and sort it
my @array2????????????= ( 100,23,9,75,10,50,7,1,40 );
my @sortedLexically???= sort @array2;
my @sortedNumerically = sort { $a <=> $b } @array2;
print "Unsorted:????@array2n";
print "Lexically:???@sortedLexicallyn";
print "Numerically: @sortedNumericallyn";


output:

Original:????0 1 2 3 4 5 6 7 8 9
Reversed:????9 8 7 6 5 4 3 2 1 0

Unsorted:????100 23 9 75 5 10 2 50 7 96 1 40
Lexically:???1 10 100 2 23 40 5 50 7 75 9 96
Numerically: 1 2 5 7 9 10 23 40 50 75 96 100


转载于:

http://blog.sina.com.cn/s/blog_55cbb3d10100pirj.html

(编辑:李大同)

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

    推荐文章
      热点阅读