Perl 子程序变量外部使用--又称为闭包

my  $var = "aaaaaaaaa";
print "1---\$var is $var\n";
&fun1;
&fun2;

#子程序用的变量会被销毁

print "3---\$var2 is $var2\n";

print "4----\$var2 is $$var3\n";

sub fun1{
	print "2----\$var is $var\n"};

##外部变量在子程序中仍旧有用



sub fun2{
	my $var2="bbbbbbbbbb";
	# my  $var3=\$var2;
	   $var3=\$var2;
	 print "\$var3 is $$var3\n";
 };
 

#此时的结果:
G:\运维系统开发\Tk\1>perl 4.pl
1---$var is aaaaaaaaa
2----$var is aaaaaaaaa
$var3 is bbbbbbbbbb
3---$var2 is
4----$var2 is

要想子程序里的变量在外部生效,引用变量必须为全局变量

G:\运维系统开发\Tk\1>perl 4.pl
1---$var is aaaaaaaaa
2----$var is aaaaaaaaa
$var3 is bbbbbbbbbb
3---$var2 is
4----$var2 is bbbbbbbbbb

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...