簡體   English   中英

獲取除第一個數組外的所有數組

[英]Get all except the first one in an array

我想切片一個數組以創建一個新數組,其中包含除數組中的第一個條目以外的所有條目。 這是我嘗試的:

@arguments = $splittedCommands[1..-1];  

這給了我一個空洞的結果。 1應該是第二個條目,-1應該是最后一個條目,那為什么不起作用?

切片數組時,應在數組前面使用@$表示您正在訪問數組內的單個標量值),因此

my @arguments = @splittedCommands[ 1 .. $#splittedCommands ];

其次,您的范圍應該是-$#splittedCommands .. -11 .. $#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM