perl的$_[0],$_[1]

发布时间:2019-11-19编辑:脚本学堂
perl编程中的$_[0],$_[1]

函数的参数 
  &abc("a","b") 
  
  sub   abc   { 
        $first=$_[0]; 
        $second=$_[1]; 
  .... 
  }

  abc("a","b") 
  
  abc函数中有a,b两个参数 
  $_[0]的值就是a 
  $_[1]的值就是b
在你写自定义函数的时候需要参数传递时 
  $_[0]表示函数的第一个参数 
  $_[1]表示函数的第二个参数 
  以此类推.......

来看一段代码。
 

复制代码 代码如下:
#!/usr/bin/perl 
  
  $sum1   =   my_sum1(1,2); 
  $sum2   =   my_sum2(1,2); 
  print   "sum1   =   $sum1         sum2   =   $sum2"; 
  
  sub   my_sum1   { 
        ($first,$second)=@_; 
        return($first+$second); 
  } 
  
  sub   my_sum2   { 
        $first=$_[0]; 
        $second=$_[1]; 
        return($first+$second); 
  } 
  
  exit; 
 

  
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。