Perl 函数原型

来源:互联网 发布:淘宝卖家提前收款 编辑:程序博客网 时间:2024/06/09 21:41

Perl函数原型的作用就是把用户自定义函数的调用方式变得像Perl系统函数一样。

下面是一个小例子;

#!/usr/bin/perl -w
use strict;

sub func_protocol ( $$ ) {
    my ($my_1,$my_2) = @_ ;
    print $my_1,"\n" ;
    print $my_2,"\n" ;
}

func_protocol ( 0,1 );

func_protocol 0,1; 

上面定义的函数可以用 func_protocol ( 0,1 );语句调用

也可以用func_protocol 0,1; 方式调用。如同Perl的内建函数,方便使用。

要注意的是,如果上例中的参数不是标量的话,Perl会执行强制转换,如修改上例为:

#!/usr/bin/perl -w
use strict;
sub func_protocol ( $$ ) {
    my ($my_1,$my_2) = @_ ;
    print $my_1,"\n" ;
    print $my_2,"\n" ;
}
my@array= (0,1) ;
func_protocol(@array,@array) ;

输出的结果为:2

                            2

这是因为数组转换成标量后,所得的值是数组的成员数量。

对于数组参数,要改写程序为:

#!/usr/bin/perl -w
use strict;
sub func_protocol ( @ ) {
    my ($my_1,$my_2) = @_ ;
    print $my_1,"\n" ;
    print $my_2,"\n" ;
}
my@array= (0,1) ;
func_protocol(@array) ;

这里要避免使用2个数组作为参数,因为Perl会自动将它们合并为一个较长的数组。