淘先锋技术网

首页 1 2 3 4 5 6 7

关于Perl中函数的声明以及调用,举例如下:

1、第一种使用方式:

# declare but not defined
sub fun;

# call function, the () is not necessary
fun $arg;   # ok
fun($arg);  # ok

# define the function
sub fun
{
    //do something
}


2、第二种使用方式:

# call function, the () is not necessary
fun $arg;  # error
fun($arg); # ok

# define the function
sub fun
{
    //do something
}


总结:
一、如果在文件开头使用的 sub fun {...}  定义了函数,那么可以使用 fun arg 或者 fun(arg) 调用函数。
     因为开头已经定义了函数,因此Perl看到fun时即可知道这是一个函数调用,因此可以不用括号亦可。

二、如果函数定义 sub fun {...} 放在文件结尾,那末在文件开头部分只能使用 fun(arg)调用,不能省略括号。
     因为此时函数尚未定义,因此Perl看到fun时并不知道这是一个函数,所以必须使用括号告诉Perl这是一个函数。

三、如果函数 sub fun {...} 放在文件结尾,但在开头用 sub fun; 声明了函数,那么也可以省略括号。
     因为这时候虽然函数尚未定义,但通过前向声明,Perl已经知道fun是一个函数,因此括号可以省略。