2009年12月9日星期三

[PerlChina] Re: 关于一个子程序的问题

楼上正解,想要哈希或数组作为子程序的参数,请传递它们的引用给子程序

2009/12/10 Michael Zeng <galaxy2004@gmail.com>
是应该用引用

这样写传参数很晦涩, 特别是传数组的时候,而且开销很大,如果@list很大的时候



sub check{
       my @dd=@_[0];    
       my @num=@_[1];
       my $n=0;
       for(my $i=0;$i<@num;$i++){
               if($dd[$num[$i]] ne 'NA'){
                       $n++;
               }
       }
       return $n;
}

用引用会比较清晰

2009/12/10 钟声 <gh00920307@gmail.com>

引用应该可以的

$a = \@one;
$b =\@two;
check($a,$b);


sub check {
      my ($num,$dd) = @_;
     $num->[0];
     $dd   ->[0];
     
}

2009/12/10 camelbbs <camelbbs@gmail.com>

请问我的子程序想处理两个数组参数,应该怎么写,下面这样好像不行:

sub check{
       my @dd=shift;
       my @num=shift;
       my $n=0;
       for(my $i=0;$i<@num;$i++){
               if($dd[$num[$i]] ne 'NA'){
                       $n++;
               }
       }
       return $n;
}








--
           Yours Sincerely
                   Zeng Hong




--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: