perl中的shift和unshift使用

push和pop操作符处理的是数组的尾端,相似地,unshift和shift操作符则是对数组的开头进行相应的处理。

SHIFT

$ITEM = shift(@ARRAY);
Perl's shift() function is used to remove and return the first element from an array, which reduces the number of elements by one. The first element in the array is the one with the lowest index. It's easy to confuse this function with pop() , which removes the last element from an array.
@myNames = ('Larry', 'Curly', 'Moe');
$oneName = shift(@myNames);
If you think of an array as a row of numbered boxes, going from left to right, it would be the element on the far left. The shift() function would cut the element off the left side of the array, return it, and reduce the elements by one. In the examples, the value of $oneName becomes ' Larry ', the first element, and @myNames is shortened to ('Curly', 'Moe') .

The array can also be thought of as astack- picture of a stack of numbered boxes, starting with 0 on the top and increasing as it goes down. The shift() function would shift the element off the top of the stack, return it, and reduce the size of the stack by one.

@myNames = ('Larry','Curly','Moe');
$oneName = shift(@myNames);
UNSHIFT

$TOTAL = unshift(@ARRAY, VALUES);

Perl's unshift() function is used to add a value or values onto the beginning of an array (prepend), which increases the number of elements. The new values then become the first elements in the array. It returns the new total number of elements in the array. It's easy to confuse this function with push() , which adds elements to the end of an array.
@myNames = ('Curly', 'Moe');
unshift(@myNames, 'Larry');
Picture a row of numbered boxes, going from left to right. The unshift() function would add the new value or values on to the left side of the array, and increase the elements. In the examples, the value of @myNames becomes ('Larry', 'Curly', 'Moe') .
The array can also be thought of as a stack - picture of a stack of numbered boxes, starting with 0 on the top and increasing as it goes down. The unshift() function would add the value to the top of the stack, and increase the overall size of the stack.
@myNames = ( 'Curly', 'Moe' );
unshift(@myNames, 'Larry');
You can unshift() multiple values onto the array directly:
@myNames = ('Moe', 'Shemp');
unshift(@myNames, ('Larry', 'Curly'));
Or by unshift()-ing an array:
@myNames = ('Moe', 'Shemp');
@moreNames = ('Larry', 'Curly');
unshift(@myNames, @moreNames);

转载自:http://perl.about.com/od/perltutorials/a/perlunshift.htm




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值