【发布时间】:2019-11-28 10:26:36
【问题描述】:
我是 PERL 新手,我尝试在循环中得到以下结果:
# ResultFistStep.
$VAR1 = [
[
'Hello1'
],
[
'Hello2'
],
[
'Hello3'
],
];
但如果我使用 InnerArray \@InnerArray 的引用:
# Example1
my @OuterArray;
my @InnerArray;
foreach(1,2,3)
{
@InnerArray[0] = "Hello" . $_;
push(@OuterArray, \@InnerArray);
}
print Dumper \@OuterArray;
...我得到这个结果:
$VAR1 = [
[
'Hello3'
],
$VAR1->[0],
$VAR1->[0]
];
如果我在没有参考的情况下尝试:
# Example2
my @OuterArray;
my @InnerArray;
foreach(1,2,3)
{
@InnerArray[0] = "Hello" . $_;
push(@OuterArray, @InnerArray);
}
print Dumper \@OuterArray;
.. 我得到这个结果:
$VAR1 = [
'Hello1',
'Hello2',
'Hello3'
];
但我想要的是开头显示的结果 (ResultFistStep) 和最后的某个点显示以下结果 (ResultFinally):
# ResultFinally
$VAR1 = [
[
'Hello1',
[
[],
[]
]
],
[
'Hello2',
[
[],
[]
]
],
[
'Hello3',
[
[],
[]
]
],
];
所以问题是:
- 我如何为 ResultFirstStep 完成这个结果?
- 我可以用 Perl 解决 ResultFinally 的问题吗?
请有人帮助我吗?我没有看到错误。
【问题讨论】:
标签: perl for-loop multidimensional-array while-loop