我目前正在编写一个Perl脚本,所以我在另一个数组@B中有一个数组@A,但是当更新数组@A时,数组@B不会考虑此更新
这是我的代码:
my @A;my @B;
@B=("test",[@A]);
@A=("aaa","bbb","ccc");
print $B[1][1];
只有当我以这种方式更改行的顺序时才有效:
my @A;my @B;
@A=("aaa","bbb","ccc");
@B=("test",[@A]);
print $B[1][1];
问题是我需要保持行的顺序作为第一个例子吗?
请帮忙吗?
答案 0 :(得分:7)
您不是在@B中存储@A,而是存储一个最初由@A内容填充的匿名数组tempPhrase = sentence.replaceAll("[.,!?:;]" , " ");
(即为空)。但是,您可以存储对@A的引用:
[]
答案 1 :(得分:6)
[ @A ]
和\@A
之间存在差异。
[ @A ]
表示“将@A
的内容复制到新匿名数组中,并返回对该新数组的引用”。
\@A
表示“返回对数组@A
的引用”。
在您的第一个示例中,您在将任何内容放入其中之前复制@A
的内容。所以你的新数组是空的。像这样重写你的第一个例子它会起作用。
my @A;
my @B;
@B = ("test", \@A);
@A = ("aaa", "bbb", "ccc");
print $B[1][1];