my $var = "aaaaaaaaa";
print "1---$var is $var
";
&fun1;
&fun2;
#子程序用的变量会被销毁
print "3---$var2 is $var2
";
print "4----$var2 is $$var3
";
sub fun1{
print "2----$var is $var
"};
##外部变量在子程序中仍旧有用
sub fun2{
my $var2="bbbbbbbbbb";
# my $var3=$var2;
$var3=$var2;
print "$var3 is $$var3
";
};
#此时的结果:
G:运维系统开发Tk1>perl 4.pl
1---$var is aaaaaaaaa
2----$var is aaaaaaaaa
$var3 is bbbbbbbbbb
3---$var2 is
4----$var2 is
要想子程序里的变量在外部生效, 引用变量必须为全局变量
G:运维系统开发Tk1>perl 4.pl
1---$var is aaaaaaaaa
2----$var is aaaaaaaaa
$var3 is bbbbbbbbbb
3---$var2 is
4----$var2 is bbbbbbbbbb