如何在Perl中使用索引名称创建新变量?

Cha*_*ter 0 perl

嗨,我读过一些相关的问题似乎没有帮助我.这是一个可以解释我想要的代码.

for ($i=0;$i<5;$i++) {
  my $new$i=$i;
  print "\$new$i is $new$i";
}
Run Code Online (Sandbox Code Playgroud)

期待变量被命名为$new0,$new1,$new2,$new3,$new4,$new5.并且像打印命令一样在循环中使用它们是非常有用的.谢谢

Sch*_*ern 18

您想要使用散列或数组.它允许将数据集合保持在一起,从而减少线下的痛苦.

my %hash;
for my $i (0..4) {
    $hash{$i} = $i;
    print "\$hash{$i} is $hash{$i}\n";
}
Run Code Online (Sandbox Code Playgroud)


Ya.*_*man 11

你能描述为什么你需要这么做吗?马克杰森多米纳斯写过为什么这样做不是一个好主意为什么"使用变量作为变量名称" 第1 部分,第2 部分第3 部分是愚蠢的.

如果您认为您的需求是对此处描述的案例的例外,请告诉我们如何以及此处的某些人可能会有所帮助.


dao*_*oad 9

你问的是一个常见问题.99.9%的案例中的答案是不要那样做.

问题是如此常见以至于它在perlfaq7中:我如何将变量用作变量名?.

有关符号引用问题的大量讨论,请参阅" 如何在Perl中使用符号引用? ".