可能重複:
What does the function declaration 「sub function($$)」 mean?&@是什麼意思?
sub t(&@) {
print @_;
}
t {print 1};
我試圖改變&@
到&$
,它會失敗。
這是什麼術語,以便我可以搜索?
可能重複:
What does the function declaration 「sub function($$)」 mean?&@是什麼意思?
sub t(&@) {
print @_;
}
t {print 1};
我試圖改變&@
到&$
,它會失敗。
這是什麼術語,以便我可以搜索?
&@
是子程序原型。這使您可以創建類似於內置函數的語法(接受BLOCK,然後使用LIST)。 列表甚至可以是空列表:()
。
&$
在使用時將強制在標量上下文中評估第二個參數(這是強制的)。由於t {print 1};
中沒有第二個參數,它將無法編譯。
閱讀有關子程序原型的更多信息:perldoc perlsub
。
'&$'和'&; $'有什麼區別? –
';'使參數的其餘部分可選。 –
您正在尋找的術語是「perl function prototypes」。
這是一個原型。 – Alex
請參閱代碼示例中的第8行[此處](http://perldoc.perl.org/perlsub.html#Prototypes) –
另請參閱[this old rant](http://www.perlmonks.org/?node_id= 406231)關於爲什麼你可能不應該使用原型。 –