Perl-08---数组库函数

1、数组拼接函数:splice

用于向列表或数组中插入元素或子列表,也可以从数组或列表中删除元素或子列表,还可以替换数组或列表中的元素或子列表;其原形如下:

@RetValue = splice(@Array,SkipElements,Length,@NewList);

参数SkipElements是拼接前跳过的元素数目,即:从第SkipEllements个元素处开始拼接;Length表示将要被替换掉的元素数;@NewList是将要拼接近来的数组或列表;当@NewList的长度大于Length时,后面的元素自动向后移动,反之则向前移动;因此,当Length == 0时,就相当于向数组或列表中插入元素;如:

splice(@Array ,-1,0,“Hello”);#表示想数组尾部添加一个元素;

当@NewList为空的时候,就相当于从数组或列表中删除元素或子列表;这时,如果Length为空,则就把第SkipElements个元素之后的元素全部删除;如:

splice(@Array,5) ; # 表示把第6个元素后面的元素全部删除;

splice(@Array,-1); #表示删除数组或列表中的最后一个元素;返回值为被删除元素的列表;

splice(@Array,5,1);#删除数组@Array中的第6个元素之后的那个元素;

2、数组排序函数:sort() / reverse()

sort()函数为数组或列表排序,返回排序后的数组或列表;

reverse()函数使数组或列表中的所有元素按照字母顺序逆需排列,返回处理后的数组或列表;

3、队列函数:

Perl中可以把数组或列表看成队列来使用;

队头操作函数:shift()和unshitf()

$Element  = shift(@Array):删除数组中的第一个元素,剩下的元素全部向前移动,并返回被删除的元素;不加参数时,默认对数组@ARGV进行操作;

$Count  = unshift(@Array,Elements):这个函数的功能shift()相反,它在数组的第一个元素之前增加一个或多个元素,返回值为结果列表或数组的长度;

队尾操作函数:push()和pop()

$Element  = pop(@Array):删除数组的最后一个元素,并返回这个被删除的元素;当列表已空,则返回未定义值(即:空值);

$Count  = push(@Array,Elements):在数组或列表的尾部增加一个或多个元素,并返回结果列表或数组的长度;

4、vec函数:vec()

vec是矢量函数,它把简单变量$Vector的值看作多块(维)数据,每块数据中含有一定数量的位(bit),合起来即为一个矢量数据。每次调用访问其中的一块数据,可以读娶,也可以写入,参数$Index就像是数组的下标一样,指出访问哪一块,0为第一块,依次类推,需要注意的是,访问次序是从右到左,即:第一块在最右边;参数bits指定每一块中的位数,可以取值位1、2、4、8、16或32;调用方法如下:

$RetVal = vec($Vector,$Index,$bits);

5、其它数组函数

@ResultList  =  map(Expr,@List);

该函数把@List中的各个元素作为表达式Expr的操作数进行计算,耳@List中的元素本身保持不变,把对@List中的各个元素的处理结果存入到一个新的数组或列表中,并把这个新的数组或列表作为返回值;在表达式Expr中,系统变量“$_”表示@List中的各个元素;

$FormatString  =  pack(PackFormat,@List):把一个列表或数组以在机器中存储的格式或C等编程语言所使用的格式转化(包装)到一个简单变量中;参数PackFormat中包含一个或多个格式字符,列表@List中每个元素对应一个,各个格式字符间可用空格或tab键隔开,pack()函数会忽略空格;

对于参数PackFormat中存放的格式字符来说,要重复使用某一格式多次的话,可在这个格式字符后面加上表示一个表示使用次数的整数;

如:$TwoInts  =  pack(“i2”,103,241); #“i2”表示需要使用格式i2次;

而如果要把同一个格式应用到数组或列表中的所有元素上,可在该格式字符后面加上一个星号“*”;如:

$ManyInts  =  pack(“i*”,14,26,11,83);

其它相关格式字符,在编写Perl程序的时候可以随时查阅相关文档;

pack()函数最常见的用途就是创建可与C程序交互的数据;如:C中的字符串以空字符NULL或0或‘/0’结束,则在Perl中可创建这样的字符串数据:

$CString  =  pack(“ax”,$MyString);

@List   =  unpack(PackFormat,$FormatString):该函数的功能与pack()函数的功能相反,用于把以机器格式存储的值转化成Perl中值的列表;其格式字符与pack()函数的基本相同;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值