+ -
当前位置:首页 → 问答吧 → 遇到个问题,请大家帮忙

遇到个问题,请大家帮忙

时间:2011-02-10

来源:互联网

请问代码
  1.              my @a=qw(1 3 4  6 8 9);
  2.              my $sum;
  3.              $sum+=$_ for @a;
  4.              print $sum;
复制代码
与代码
  1.              my @a=qw(1 3 4  6 8 9);
  2.              my $sum +=$_ for @a;
  3.              print $sum;
复制代码
为什么出来结果不同,第二个为什么没有

作者: fucj   发布时间: 2011-02-10

原因就是 你 使用了 未初始化的值 $sum

作者: leigh111   发布时间: 2011-02-10

本帖最后由 justlooks 于 2011-02-10 14:45 编辑

每次my $sum的时候你就创建了个新变量
第2个代码的my 范围是for循环当1次循环结束的时候原来的my值被抛弃,而下1次循环又创建了新值

作者: justlooks   发布时间: 2011-02-10

哦,明白了,原来是for循环的时候每次都初始化一次$sum造成的阿,谢谢大家

作者: fucj   发布时间: 2011-02-10