my $a = [ 1 .. 10 ] ;
my $b = [ 2.. 20 ] ;

wowo( $a , $b);


2009/12/10 Xiaojun Deng <[email protected]>

> On Thu, Dec 10, 2009 at 11:14:46AM +0800, Michael Zeng wrote:
> >不行吧,你要写 wowo(\...@a , \...@b )
> >
> >或者 wowo($a, $b)  , 而 $a, $b本身就是ref变量
> >
> >sub里面都是靠 shift 来进行标量处理参数的
> >
>
> 这样的啊, $a, $b是数组的元素个数吧, 在这个context下也表示数组本身的reference?
>
> >
> >
> >2009/12/10 Xiaojun Deng <[email protected]>
> >
> >> On Thu, Dec 10, 2009 at 10:48:39AM +0800, cnhack TNT wrote:
> >> >楼上正解,想要哈希或数组作为子程序的参数,请传递它们的引用给子程序
> >> >
> >>
> >> 如同c的指针
> >> Perl默认能传数组给函数吗?
> >>
> >> >2009/12/10 Michael Zeng <[email protected]>
> >> >
> >> >> 是应该用引用
> >> >>
> >> >> 这样写传参数很晦涩, 特别是传数组的时候,而且开销很大,如...@list很大的时候
> >> >>
> >> >>
> >> >>
> >> >> sub check{
> >> >>        my @d...@_[0];
> >> >>        my @n...@_[1];
> >> >>        my $n=0;
> >> >>        for(my $i=0;$i<@num;$i++){
> >> >>                if($dd[$num[$i]] ne 'NA'){
> >> >>                        $n++;
> >> >>                }
> >> >>        }
> >> >>        return $n;
> >> >> }
> >> >>
> >> >> 用引用会比较清晰
> >> >>
> >> >> 2009/12/10 钟声 <[email protected]>
> >> >>
> >> >> 引用应该可以的
> >> >>>
> >> >>> $a = \...@one;
> >> >>> $b =...@two;
> >> >>> check($a,$b);
> >> >>>
> >> >>>
> >> >>> sub check {
> >> >>>       my ($num,$dd) = @_;
> >> >>>      $num->[0];
> >> >>>      $dd   ->[0];
> >> >>>
> >> >>> }
> >> >>>
> >> >>> 2009/12/10 camelbbs <[email protected]>
> >> >>>
> >> >>> 请问我的子程序想处理两个数组参数,应该怎么写,下面这样好像不行:
> >> >>>>
> >> >>>> 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
> >> >>
> >> >> >
> >> >>
> >> >
> >> >>
> >>
> >> > >>
> >>
> >
> >
> >--
> >           Yours Sincerely
> >                   Zeng Hong
>



-- 
           Yours Sincerely
                   Zeng Hong

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

回复