for中的自变量不能定义为局部变量?

for中的自变量不能定义为局部变量?

脚本中有for循环:
for($i=0;$i<10;$i++){
}
子程序中也用了
for(my $i=0;$i<10;$i++){
}
发现$i互相冲突,子程序的$i不是局部变量,
即使在子程序中写成:
my $i;
for($i=0;$i<10;$i++){
}
还是不行。
我将一个$i改成$j就好了,这是怎么回事呢?

请高手指点。谢谢!
只能告诉你,不是个好习惯
给个完整的例子看看
学perl编程,还是应该先放弃一些c语言的思维习惯的。
两个地方都有for,我应该怎么定义局部变量呢?是不是perl做不到?
不明白你的代码是怎么样的
至少这样的代码是没有问题的

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
use strict;
use warnings;
my $i;
for($i=0;$i<3;$i++){
                                print "In outerloop $i\n";
                                for(my $i=0;$i<2;$i++){
                                                                print "In innerloop $i\n";
                                }



[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
use strict;
use warnings;
for(my $i=0;$i<3;$i++){
                print "In outerloop $i\n";
                for(my $i=0;$i<2;$i++){
                                print "In innerloop $i\n";
                }
}

6楼的可以正确运行,都定义了局部的,互不影响
我的代码是

#!/usr/bin/perl

for($i=0;$i<3;$i++){
            &subroutine();
            print "in outer $i\n";
}
sub subroutine{
            for(my $i=0;$i<2;$i++){
                    print "In subfunction $i\n";
            }
}
然后不行。
这样也没有冲突啊
你还想要什么结果?


QUOTE:
原帖由 churchmice 于 2008-12-10 12:24 发表
这样也没有冲突啊
你还想要什么结果?

我的脚本中这样就有冲突了,所以会觉得奇怪。