看板 Perl 關於我們 聯絡資訊
※ 引述《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; } 這個是你指的.. 二維以上嗎? @_@" -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.121.80.249 ※ 文章網址: http://www.ptt.cc/bbs/Perl/M.1420639609.A.8E2.html
josefy: 沒錯, 但我用splice @items, 1,1; 真的不行 Or2 01/07 22:08
josefy: 不知道為什麼 囧> 01/07 22:08
CindyLinz: 我猜要額外看其他部分的程式碼了.. 問題可能不在這行@@ 01/07 22:10
josefy: ok, 瞭解! 01/07 22:15