问题是这样的: 我有一个循环。虽然我重复这个循环,我想创建一个数列的名称如下:array1
array2
array3
...Perl连接阵列的名称与现有值
我想知道是否有是连接这些名字在Perl 我想是这样的一个方式,但我得到一个错误
$i = 0;
while ($i <= 5) {
@array . $i =();
$i++;
}
问题是这样的: 我有一个循环。虽然我重复这个循环,我想创建一个数列的名称如下:array1
array2
array3
...Perl连接阵列的名称与现有值
我想知道是否有是连接这些名字在Perl 我想是这样的一个方式,但我得到一个错误
$i = 0;
while ($i <= 5) {
@array . $i =();
$i++;
}
是的,你可以这样做,但不是,你不应该做到这一点。
你应该做的,而不是为使用引用的数组匿名数组:
@arrayrefs =();
$i = 0;
while ($i <= 5) {
$arrayrefs[$i] = [];
$i++;
}
,或者更简洁:
@arrayrefs = ([], [], [], [], [], []);
但为了完整性。 。 。你可以做到这一点,通过使用“符号引用”:
$i = 0;
while ($i <= 5) {
my $name = "array$i";
@$name =();
$i++;
}
(当然,数组默认为空数组无论如何,所以这是不是真的需要。)
。顺便说一句,请注意,它实际上是习惯使用for循环而不是这种简单的情况下,while循环。无论是这样的:
for ($i = 0; $i <= 5; $i++) {
...
}
或本:
for $i (0 .. 5) {
...
}
你想用哈希,
use strict;
use warnings;
my %hash;
for my $i (1 .. 5) {
$hash{ "array$i" } = [];
}
在我看来,一个农业协定将使更为明智比安和这里。 – ikegami