#!/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变量:本层和本层下层的函数都可以看到的变量
|
请发表评论