Perl入门学习(三)数组

Perl入门学习(三)数组perl 数组的使用方法 perl 数组

大家好,欢迎来到IT知识分享网。

ab367f637ef5455aaab8d40f2cd9d25f.jpg

数组是存储多个数据的变量类型,本篇文章通过几个角度学习理解数组。

1、数组变量的赋值与读取

数组的赋值与读取请见上一篇文章:变量的赋值与读取

2、数组的大小

数组的大小用到一个上下文的设定,上下文是指表达式的位置,即同一个表达式出现在不同位置会产生不同含义。举例来说:

#!/user/bin/perl -w use strict @array = (1,2,3); $size = @array ; print "$size \n";

由于$size是标量,所以$size=@array;返回的就是标量,这就是标量上下文,所以这里运行的结果就是3,即数组@array的大小。

./script.pl -> 3

这里的大小指的不是元素的个数,而是索引值的大小,索引值最小是0,最大是2,所以返回值是3,举例来说:

#!/user/bin/perl -w use strict @array = (1,2,3); $array[100] = 100 ; $size = @array ; print "$size \n";

给数组@array加入了一个索引值100的新元素,这里的返回值就是是101。

./script.pl -> 101

要起到相同效果可以使用scalar命令,$size=scalar @array,虽然多了一个scalar但是阅读起来会更直观。

想要返回最大的索引值可以用”@#array“

#!/user/bin/perl -w use strict @array = (1,2,3); $array[100] = 100 ; $size = $#array ; print "$size \n";

返回值就是100。

./script.pl -> 100

3、 添加和删除数组元素(push、pop、shift、unshift)

这里会用到push、pop,shift和unshift四个命令。

”push“,在数组后添加新元素(可以添加多个元素彼此之间用逗号”,“隔开,也可以直接添加数组)。

#!/user/bin/perl -w use strict @array = (1,2,3); @list = (4,5); push (@array,@list); print "$array[-1] \n";

 运行结果如下:

./script.pl -> 5

“pop”,删除最后一个元素。

#!/user/bin/perl -w use strict @array = (1,2,3); pop @array; print "$array[-1] \n";

运行结果为:

./script.pl -> 2

”shift“,删除第一个元素,所有元素索引值依次减一。

#!/user/bin/perl -w use strict @array = (1,2,3); shift @array; print "$array[0] \n"; print "$#array\n"; #返回最大索引值

运行结果如下:

./script.pl -> 2 1

”unshift“,在数组开头添加新元素。

#!/user/bin/perl -w use strict @array = (1,2,3); @list = (4,5); push (@array,@list); print "$array[0] \n";

运行结果如下:

./script.pl -> 4

4、替换数组元素(splice)

数组元素替换需要使用splice命令,格式为:splice(@array_name ,Start ,Num, List)。其中Start为起始点的索引值,Num为替换元素数量,List为替换的列表。

#!/user/bin/perl -w use strict @array = (1,2,3); splice (@array,1,1,List; #把索引值为”1“即第数组@array的二个元素替换成”LIST“ print "$array[1] \n"; splice (@array,1,1); #不提供替换的元素列表相当于删除元素 print "$array[1] \n";

运行结果为:

./script.pl -> List 3

5、将字符串转换为数组(split)

使用”split“可以把字符串拆分成数组,使用方式为split(”PATTERN“,STRING),PATTERN定义字符串中的分隔符,STRING是字符串,可以用标量代替,PATTERN如果是”“即空的,就会把字符串中所有字符都拆分成一个个元素加入到数组中。

#!/user/bin/perl -w use strict $list = "1,2,3"; @array = split ("",@array); #把字符串每个字符都转换成数组@array的元素 print "$array[1] \n"; @array = split (",",@array);; #把逗号当作分隔符 print "$array[1] \n";

运行结果为:

./script.pl -> , 2

6、数组排序 (sort)

sort的排序是按照 ASCII 数字值来排序的,这就意味着首字母是大写字母会排在首字母小写字母前面,小写字母按照【a-z】的顺序排序,数字排序就会因为值对首位数字排序导致排序不准。

#!/user/bin/perl -w use strict @array = (Z,a,z,11,2); @asort = sort (@array); print "@sort \n";

运行结果如下:

./script.pl -> 11 2 Z a z

为了准确进行数字排序可以使用飞船符“<=>”,{$a<=>$b}是正序 {$b<=>$a}是倒序。

#!/user/bin/perl -w use strict @array = (10,9,8); @sort = sort (@array); print "@sort \n"; @sort = sort ({$a<=>$b}@array); #正序 print "@sort \n"; @sort = sort ({$b<=>$a}@array); #倒序 print "@sort \n";

运行结果为:

./script.pl -> 10 8 9 8 9 10 10 9 8

 

 

 

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118026.html

(0)
上一篇 2025-11-16 12:33
下一篇 2025-11-16 13:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信