2017-08-04 40 views

回答

5

的Perl是Perl中,有不止一種方法來做到這一點,如

dd my @ = @$[<a b c>];  # via original array, equivalent to .list 
dd my @ = $[<a b c>][]; # via original array, using zen slicing 
dd my @ = |$[<a b c>];  # via intermediate Slip, equivalent to .Slip 
dd my @ = $[<a b c>].flat; # via intermediate flattening Seq 

最明確的解決方案可能通過@.list強制執行列表上下文,我會避免.flat調用,因爲它具有略微不同的語義內涵。

就像提醒一樣,請注意列表分配是複製,但如果您使用的是從標量容器中取出原始數組的其中一種方法,則還可以使用綁定。然而,在這種情況下,你甚至不會需要手動decontainerize作爲

dd my @ := $[<a b c>]; 

也得到你回你的陣列的東西列表-Y。

+0

Aiui'''如果綁定,自動被剝離(即多餘),即'dd my @:= [];'與'dd my @:= $ [];'得到相同的結果;'。 – raiph

相關問題