23ed 发表于 2015-12-27 08:45:52

Perl 往子程序传递数组参数的问题

  最近一直在搞一个shell+perl的项目,其中还用到了存储过程。以前一直没有搞过这些东西,一边做一边学习,一边coding,一边改善着performance。
  在这几周期间,学习了很多,这也是在对日外包项目中绝对学不到的。陆陆续续的要整理上来。
  现阶段,我的最大问题是基础薄弱,而且对问题的研究不够深入。只追求解决问题的方法而不深挖问题背后的技术现象。以后慢慢改进吧。:-)
  
  在testing的过程中,遇到一个问题。我写了一个子方法,是定位当前变量处于某数组的哪个位置的。当然,子方法飞的参数就是一个变量和一个数组。但测试的时候发现总是不能找到位置,查了一下网络。问题如下:
  1、在传递参数的时候,要在数组参数前面加上"\"。
  2、如果传入的数组为@arr,那么在子方法中调用这个数组参数时使用 @$arr。
  
  For Example:
  #!/usr/bin/perl
@trades = (1110111,0,0,1120011,0,1,11133011,0,0);
$refno = $trades;
print "$refno\n";
$po = &getP($refno,\@trades);
print "Position is $po\n";
sub getP{
my($p,$arr) = @_;
my $po = 0;
my $count = @$arr;
while($po<$count){
    if(@$arr[$po] == $p){
      return $po;
    }else{
      $po++;
    }
}
}

  还有很多问题,陆陆续续的都会整理上来。
页: [1]
查看完整版本: Perl 往子程序传递数组参数的问题