将参数传递给子程序

ZDNet软件频道 时间:2003-08-04 作者:ZDNet China |  我要评论()
本文关键词:
尽管Perl将参数传递给子程序的方式很简单,但是它提供了很强的灵活性。一个标量的列表会被传递给子程序,并通过数组来访问。
本文译自Builder.com,未经许可请勿转载 尽管Perl将参数传递给子程序的方式很简单,但是它提供了很强的灵活性。一个标量的列表会被传递给子程序,并通过数组来访问。你可以按照自己的要求来控制自变量的数量,或者处理数量不定的参数,如果你的子程序需要的话。下面是一个例子:

print "No parameters: " &func;
print " 1 parameter: " &func(1);
print " 2 parameters: " &func(12);
print " 3 parameters: " &func(123);
print " 4 parameters: " &func(1234);

subfunc() {
    my $one = shift || return "At least one parameter expected ";
    my $two = shift || "two";
    my $three = shift || "three";
    return "Too many parameters " if @_;

    return "$one $two $three ";
}

上面的例子会有下面的结果:

No parameters: At least one parameter expected
 1 parameter: 1 two three
 2 parameters: 1 2 three
 3 parameters: 1 2 3
 4 parameters: Too many parameters

Func子程序至少需要一个参数,但是最多能够带有三个参数,只要提供了的话。假如没有提供第二和第三个参数,那么这两个参数都会被缺省的值替代。如果没有提供参数或者提供了三个以上的参数,它就会给出一条警告信息。

数组元素事实上都是对传递来的标量的参照,同样的,也是可以修改的。下面的例子显示了如何修改一个参数:

my $count = 1;
&increment($count);
print "count=$count ";

sub increment()

要传递散列数组或者多个数组,你必须将参照传递给它们。(这样做效率会更高。)



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134