[英]Get all except the first one in an array
我想切片一個數組以創建一個新數組,其中包含除數組中的第一個條目以外的所有條目。 這是我嘗試的:
@arguments = $splittedCommands[1..-1];
這給了我一個空洞的結果。 1應該是第二個條目,-1應該是最后一個條目,那為什么不起作用?
切片數組時,應在數組前面使用@
( $
表示您正在訪問數組內的單個標量值),因此
my @arguments = @splittedCommands[ 1 .. $#splittedCommands ];
其次,您的范圍應該是-$#splittedCommands .. -1
或1 .. $#splittedCommands
,以后會更常見,更直接。
最簡單的方法是使用
( undef, my @commands ) = @splittedCommands;
在此處分配為undef
會丟棄第一個結果,然后其余的將進入@commands
另一種方法可能是分配批次,然后刪除第一個
my @commands = @splittedCommands;
shift @commands;
如果您不需要再保留原始數組,也可以簡化此操作。 只需shift
第一個項目從@splittedCommands
然后直接使用即可。
如果必須保留原始數組不變,那么顯而易見的方法似乎是復制整個數組並刪除第一個元素。
shift(my @commands = @splittedCommands)
會做的很好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.