如何在Perl中使用for循环创建变量?

时间:2011-11-16 12:25:42

标签: perl

我正在使用Perl,我想在循环中创建变量。所以每个循环都会创建一个具有不同数字的变量。 例如 第一个循环将创建:

num1 = x;

第二个循环将创建

num2 =x;

感谢您的帮助

2 个答案:

答案 0 :(得分:6)

使用数组并在每次迭代时添加一个数字。

my @nums;

for (1..10) {
    push @nums, $_; # your `x'
}

答案 1 :(得分:6)

如果你真的需要命名它们,那么哈希应该做得很好。我推荐这个,但你可以这样做。我只是向您展示如何以系统的方式“命名”事物,就像使用第一类变量一样。

my %hash;
my $i = 0;
for ( @list ) { 
    $hash{ 'num' . ++$i } = $_;
}

当数组执行类似的操作时,根据它们的顺序, name 数字再次变得毫无意义,而且你永远不必担心字典顺序会妨碍它。

因此,您应该考虑通过命名变量来解决的问题,以便确定这是否是最好的方法。


我刚才回想起当我想输入与标量语法尽可能不同的时候我所做的事情。它依赖于*_是一个glob的事实,但是在GLOB中没有使用某些槽。

所以你可以使用local %_;

因此,只有 3 个额外字符可以使用任何此类伪造变量进行输入:

$_{num001} += 43;

当然,这是您必须输入的额外字符数

$v{num001} += 43;

也是。