2009年8月21日星期五

[PerlChina] 变量作用域的问题

大家好,

新手想不太明白一个变量作用的问题,请帮忙看看。

我的问题是如何理解$x后两次没有值,为什么在函数in_a里还有值?而且第三次循环的时候这个值怎么成2了?

简化的程序如下:

for $i (0..2){
    a();   
}
sub a
{
    my $x ;
    in_a();
    print $i,":\t",$x,"\n";
    undef $x;
    sub in_a
    {
      $x++;   
      print "in_a:$x\n";
    }   
}

执行结果:
in_a:1
0:      1
in_a:1
1:
in_a:2
2:



Best regards
Zhang JiaQiang


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: