首页 > 解决方案 > 如何对数组引用进行切片并在一行中返回一个数组引用?

问题描述

考虑以下代码行。我想对数组 ref $a 进行切片并将结果作为分配给 $b 的数组 ref 返回。如图所示,我可以用两行来做到这一点。我很难在一行中做到这一点!如何才能做到这一点?

$a = [1,2,3,4,5];
###the desired result###########################
@b = @{$a}[1 .. @{$a} - 1];
$b = \@b; # $b is [2,3,4,5]
################################################
###trying to get the desired result in one line##
$b = \@{$a}[1 .. @{$a} - 1]; # $b is \5;
$b = \{@{$a}[1 .. @{$a} - 1]}; # $b is \{ 2 => 3, 4 => 5 }
$b = $a->[1 .. @{$a} - 1]; # $b is 1
$b = $a->@[1 .. @{$a} - 1]; # $b is 5

标签: perl

解决方案


你可以说

$b = [ @{$a}[1 .. @{$a} - 1] ];

推荐阅读