我有一個很大的數組,我想從數組中刪除第2,第8,第14等元素。我的陣列目前是這樣的:如何從Perl數組中刪除元素?
Element1 x A B C
Element 2 y A B C
Element 3 z A B C
廣義上說,我要刪除的X,Y和Z(只是作爲一個例子,我的陣列是性能稍微更復雜)。然後拉起其餘的。如同,我不想在他們的職位上留下空白。我想:
Element 1 A B C
Element 2 A B C
Element 3 A B C
我想試試這個跟我的數組「todelete」:
print "#Before Deleting"; print
$todelete[0]; print "\n"; print
$todelete[2]; print "\n"; print
$todelete[3];
for ($count=2; $count<@todelete;
$count=$count+6) { delete
$todelete[$count]; }
print "#After Deleting"; print
$todelete[0]; print "\n"; print
$todelete[2]; print "\n"; print
$todelete[3];$todelete[3];
但是,目前,我認爲它只是unitializes我的價值,因爲當我打印結果,它告訴我:
Use of uninitialized value in print
建議?
你的厲害!非常感謝! – poutine 2010-11-04 21:53:45
@poutine:有人很驚奇,因爲他們已經閱讀[perl的每個安裝程序附帶的基本文檔](http://perldoc.perl.org/functions/splice.html)?是不是設置酒吧有點低? – Ether 2010-11-04 22:30:20
啊......但現在我面臨另一個問題,因爲索引已經轉移。我需要刪除的元素不再位於第8個位置。它現在位於第7個位置。其餘部分也是如此。我認爲更好的選擇是刪除元素,然後使用過濾器,然後拼接出來? 以太......你的權利。在短時間內,當我認爲它工作時,我感到很驚訝,因爲我花了很多時間試圖用for循環來考慮它。 – poutine 2010-11-04 23:06:42