聘我网

新概念招聘3.0

一个语法问题

vote up0vote downstar

这样是好的:

sub t(&@){
    print @_;
}
t {print 1}

输出:

CODE(0x623bb8)

尝试把&@改成&$就会失败:

Not enough arguments for main::t 

这是神马道理,该搜哪个关键字?

 

1 个答复

vote up0vote downcheck

可以搜

perl prototype

或者查看

perldoc perlsub

答案就是:

http://perldoc.perl.org/perlsub.html#Prototypes

&@表示接受一个BLOCKLIST

&$表示接受一个BLOCKSCALAR

&;$&$的区别是,标量($)是optional

例子:

sub t(&$){
    print @_;
}
t {print 1} 1

输出:

CODE(0x623bb8)1
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.