perl中的私有变量

#!/usr/bin/perl
sub g_print{
print "$x ";
}
  #my local都叫做私有变量。
  sub test_my{
  my $x=11;#my定义的变量只能在该块体(两个{}之间)中使用,不能向内传递
  print"call-my $x ";#11,就近原则
  g_print;#my参数不能向内传递,所以还是输出9
}

  sub test_local{
  local $x=20;#local也是私有变量,但是与my的区别是,local可以向内传递
  print"call-local $x ";#20
  g_print;#209
}

$x=9;
test_my;
test_local;
print $x;
#my变量:只在本层模块可以看到这个变量
#local变量:本层和本层下层的函数都可以看到的变量

原文地址:https://www.cnblogs.com/shunguo/p/11441645.html