2017-08-04 71 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

相关问题