我还是 Perl 的新手。我正在尝试获取一些数组并将它们放入另一个数组而不使用循环。
my @array1 = ("abc", "def", "ghi", "jkl", "mno", "pqr");
my @array2=$array1[2 .. 4];
但它行不通。
我希望@array2 的结果是“def ghi jkl”。
您需要使用@
for 数组切片而不是标量标记 ( $
):
my @array1 = ("abc", "def", "ghi", "jkl", "mno", "pqr");
my @array2=@array1[2 .. 4]; # ====> @array1 not $array1
print join(",", @array2), "\n";
列表切片的语法是@array[EXPR]
(not $array[EXPR]
),所以你想要
my @array2 = @array1[2..4];
请注意,上面有三个循环。如果你想避免循环,你必须使用
my @array2;
$array2[0] = $array1[2];
$array2[1] = $array1[3];
$array2[2] = $array1[4];
不过,我怀疑你是否真的想避免循环,尽管有请求。
将您的陈述更改为以下内容:
@array2=@array1[2..4];