perl子例程参数传递方式初探
来源:互联网 发布:模拟乐器 软件 编辑:程序博客网 时间:2024/05/24 05:23
perl里,子例程采用可变长参数列表,因此参数的个数不再限制,体现出动态语言的优点。由于传递的是引用,所以可以在sub里改变它的值。
samle01.pl
#!/usr/bin/perl
sub sub_routine{
$_[0] = "hello"; $_[1] = 999;
print "sub_par1:$_[0]/n";
print "sub_par2:$_[1]/n";
}
my $par1 = "abcde";
my $par2 = 2;
print "main_par1:$par1/n";
print "main_par2:$par2/n";
&sub_routine($par1, $par2);
print "main_par1:$par1/n";
print "main_par2:$par2/n";
运行结果:
main_par1:abcde
main_par2:2
sub_par1:hello
sub_par2:999
main_par1:hello
main_par2:999
如果不想在子例程里改变参数的值,可以采用生命局部变量的方法。
sample02.pl
#!/usr/bin/perl
sub sub_routine{
my $par1 = $_[0];
my $par2 = $_[1];
$par1 .= "fghijklmn";
$par2 += 10000;
print "sub_par1:$par1/n";
print "sub_par2:$par2/n";
}
my $par1 = "abcde";
my $par2 = 2;
print "main_par1:$par1/n";
print "main_par2:$par2/n";
&sub_routine($par1, $par2);
print "main_par1:$par1/n";
print "main_par2:$par2/n";
运行结果:
main_par1:abcde
main_par2:2
sub_par1:abcdefghijklmn
sub_par2:10002
main_par1:abcde
main_par2:2
samle01.pl
#!/usr/bin/perl
sub sub_routine{
$_[0] = "hello"; $_[1] = 999;
print "sub_par1:$_[0]/n";
print "sub_par2:$_[1]/n";
}
my $par1 = "abcde";
my $par2 = 2;
print "main_par1:$par1/n";
print "main_par2:$par2/n";
&sub_routine($par1, $par2);
print "main_par1:$par1/n";
print "main_par2:$par2/n";
运行结果:
main_par1:abcde
main_par2:2
sub_par1:hello
sub_par2:999
main_par1:hello
main_par2:999
如果不想在子例程里改变参数的值,可以采用生命局部变量的方法。
sample02.pl
#!/usr/bin/perl
sub sub_routine{
my $par1 = $_[0];
my $par2 = $_[1];
$par1 .= "fghijklmn";
$par2 += 10000;
print "sub_par1:$par1/n";
print "sub_par2:$par2/n";
}
my $par1 = "abcde";
my $par2 = 2;
print "main_par1:$par1/n";
print "main_par2:$par2/n";
&sub_routine($par1, $par2);
print "main_par1:$par1/n";
print "main_par2:$par2/n";
运行结果:
main_par1:abcde
main_par2:2
sub_par1:abcdefghijklmn
sub_par2:10002
main_par1:abcde
main_par2:2
- perl子例程参数传递方式初探
- perl子例程参数传递方式之二:数组作参数
- Perl中的子例程
- perl子例程
- Perl子函数参数传递
- perl 参数传递
- perl 参数传递
- perl 子程序传递参数
- Perl 子例程传参总结
- perl 调用方法 子例程说明
- Perl CH11 子例程与函数笔记
- vue向子组件传递参数的两种方式
- C语言及程序设计提高例程-6 参数传递方式:传值与传地址
- Perl脚本间传递参数
- Perl脚本间传递参数
- perl文件句柄参数传递
- perl 传递数组作为参数
- perl中子程序中参数的两种引用(传递)方式介绍
- 让工作变简单的10种方法
- 设计模式之Chain of Responsibility(职责链)
- 温和由中国引领
- 设计模式之Mediator(中介者)
- 设计模式之State
- perl子例程参数传递方式初探
- 设计模式之Memento(备忘机制)
- 设计模式之Interpreter(解释器)
- 设计模式之Visitor
- 系统发生 1219 错误。提供的凭据与已存在的凭据集冲突。
- 在asp.net生成的word文档中插入图片
- 一份详尽的IPC$入侵资料
- Using Netscape Server Push Technology with ASP
- 项目源代码目录结构建议【原创】