函数的参数
&abc("a","b")
sub abc {
$first=$_[0];
$second=$_[1];
....
}
abc("a","b")
abc函数中有a,b两个参数
$_[0]的值就是a
$_[1]的值就是b
在你写自定义函数的时候需要参数传递时
$_[0]表示函数的第一个参数
$_[1]表示函数的第二个参数
以此类推.......
来看一段代码。
PERL的表达是非常灵活的,以上两个函数是等效的,还有其他写法,这里不多举例了,执行结果为:
sum1 = 3 sum2 = 3
第一种写法是比较常见的,第二种是简单直接的写法,你可以只接收你想要的参数,它的好处是如果你接收了一万个参数,你可以用$_[999]来接收第999 个参数,而其他的就不用管。在PERL中,当一个自定义函数接收参数时,它都放在数组@_中,$_[0],$_[1]就是从该数组中去取参数。
应该多看看!
$_[0] 是@_ 中的第一个元素
$_[1] 是@_ 中的第二个元素
此方法多用在Sub过程中 到现在为止 我还不清楚 SUB 算过程还算函数 呵呵~~
可能有回值算函数吧 没有 算过程吧……
其实很简单,所有传入perl过程的参数都是以@_身份传入的。如果调用一个有两个参数的函数,它们在函数内部可以作为@_数组的前两个成员访问:$_[0]和$_[1]。因为@_只是一个有着奇怪名字的普通数组,所以你可以像处理普通数组一样随意的处理它,知道了这一点,其他的书写模式也就不奇怪了:
比如: ($first,$second)=@_; 就是将数组@_中的两个元素分别付给$first,$second,由于@_是数组,所以将$first,$second用括号括起来表示列表环境。
还有什么 $first = shift; $second = shift; 将@_中的第一个元素付给$first,第二个元素付给$second。