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]