+ -
当前位置:首页 → 问答吧 → 子程序 返回值 问题

子程序 返回值 问题

时间:2010-10-24

来源:互联网

  1. use strict;
  2. use warnings;

  3. my $x = 0;

  4. sub f {
  5.    
  6.     $x++;
  7.     print "L: x is $x\n";
  8.    
  9.     my $x = -100;
  10.     print "M: x is $x\n";
  11.    
  12.     return $x;
  13. }

  14. f();
  15. print "O: x is $x\n";
复制代码
返回值不应该是最后一个附值的么
但是输出的是
L: x is 1
M: x is -100
O: x is 1

O为什么是1 不是-100呢

作者: Little-C   发布时间: 2010-10-24

回复 Little-C
按照你的意思,岂不:
  1. sub f {
  2.     my $a = 9;
  3.     return $a;
  4. }
  5. f();
  6. print "a is $a";
复制代码
应该输出 a is 9 了。

作者: Monox   发布时间: 2010-10-24

$x = f();

作者: jason680   发布时间: 2010-10-24

本帖最后由 zhlong8 于 2010-10-24 18:36 编辑

基本的作用域都没搞明白……


http://bbs.chinaunix.net/viewthr ... ge=1&highlight=

作者: zhlong8   发布时间: 2010-10-24