请问如何在每次循环语句中生成标量?

请问如何在每次循环语句中生成标量?

想请问前辈们:我想在每次循环语句内生成一个标量,该如何做到呢?

while(1){
   $a_1=1;     #在下一个循环中,我需要有$a_2,然后下下个循环是$a_3,.......
}

请各位指点,感激!
拼接一下,soft deference,需要no strict refs,否则编译通不过
${"a_" . $index} = your_desired_value
$index ++

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
use strict;
use warnings;
no strict qw (vars refs);
$index =0 ;
while($index < 2){
  $index ++;
  ${"a_" ."$index"} = 1;
  }
print "$a_1 $a_2\n";



QUOTE:
<lig@other-server:~/chinaunix>$ ./concatenate
Name "main::a_2" used only once: possible typo at ./concatenate line 10.
Name "main::a_1" used only once: possible typo at ./concatenate line 10.
1 1

不推荐这种做法,可以用hash代替
这样就是标量内的变量内插吗?

$a=1;
${"b_"."$a"}=100;
print ${"b_"."$a"};

打印结果:
100

谢谢了。


QUOTE:
原帖由 kukuk 于 2008-3-15 22:41 发表
这样就是标量内的变量内插吗?

$a=1;
${"b_"."$a"}=100;
print ${"b_"."$a"};

打印结果:
100

谢谢了。

soft deference
中文不知道怎么翻


QUOTE:
原帖由 kukuk 于 2008-3-15 20:13 发表
想请问前辈们:我想在每次循环语句内生成一个标量,该如何做到呢?

while(1){
   $a_1=1;     #在下一个循环中,我需要有$a_2,然后下下个循环是$a_3,.......
}

请各位指点,感激!

呵呵,我很久很久以前似乎也有过这种想法,其实你会发现根本不需要这样做。
说一下你的任务需求吧。