perl中的私有变量

#!/usr/bin/perl

sub g_print{

print "$x\n";

}

  #my local都叫做私有变量。

  sub test_my{

  my $x=11;#my定义的变量只能在该块体(两个{}之间)中使用,不能向内传递

  print"call-my $x\n";#11,就近原则

  g_print;#my参数不能向内传递,所以还是输出9

}

  sub test_local{

  local $x=20;#local也是私有变量,但是与my的区别是,local可以向内传递

  print"call-local $x\n";#20

  g_print;#209

}

$x=9;

test_my;

test_local;

print $x;

#my变量:只在本层模块可以看到这个变量

#local变量:本层和本层下层的函数都可以看到的变量