作者:
CindyLinz (Cindy Wang)
2015-01-07 22:06:46※ 引述《josefy (醉落~最弱)》之銘言:
: 各位版大好, 小弟最近遇到個問題
: 我有個array
: @items=([a,1],[b,2],[c,3],[d,4]);
: 但是我想要移除掉第n個row
: ex, n=1 @items應該會變為:
: @itmes=([a,1],[c,3],[d,4]);
: 我試過用 splice但是對一維的array可以, 二維以上好像不能用
: splice @itmes,1,1;
: 請問該怎麼做 ? 謝謝!
Perl 的 array 實際上都是一維的.
只是我們有時候在這一個一維 array 裡面存放的是一排 array 的 reference
所以可以用起來像是二維 array 的效果.
如果想要把
@items = ([a,1],[b,2],[c,3],[d,4])
變成
@items = ([a,1],[c,3],[d,4])
的話, 用:
splice @items, 1, 1
沒有錯;
如果想變成
@items = ([a],[b],[c],[d])
的話, 就... 實際上是一一進每一個 ref 到的 array 裡面操作, 用:
for (@items) {
splice @$_, 1, 1;
# 較新版本的話 (perl >= 5.14) 也可以用下面這個
# splice $_, 1, 1;
}
這個是你指的.. 二維以上嗎? @_@"