perl编程中的$_[0],$_[1]

来源:互联网 发布:银行数据录入员 编辑:程序博客网 时间:2024/06/07 18:39
函数的参数  
   
  &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]就是从该数组中去取参数。

http://www.csdn.net/expert/topic/1082/1082680.xml?temp=.4057123  
  应该多看看!  
   
  $_[0]   是@_   中的第一个元素  
  $_[1]   是@_   中的第二个元素  
   
  此方法多用在Sub过程中   到现在为止   我还不清楚   SUB   算过程还算函数   呵呵~~  
  可能有回值算函数吧   没有   算过程吧……

其实很简单,所有传入perl过程的参数都是以@_身份传入的。如果调用一个有两个参数的函数,它们在函数内部可以作为@_数组的前两个成员访问:$_[0]和$_[1]。因为@_只是一个有着奇怪名字的普通数组,所以你可以像处理普通数组一样随意的处理它,知道了这一点,其他的书写模式也就不奇怪了:  
  比如:   ($first,$second)=@_;   就是将数组@_中的两个元素分别付给$first,$second,由于@_是数组,所以将$first,$second用括号括起来表示列表环境。    
  还有什么   $first   =   shift;   $second   =   shift;   将@_中的第一个元素付给$first,第二个元素付给$second

From:http://topic.csdn.net/t/20021015/11/1098005.html

原创粉丝点击