5 回答

TA貢獻1833條經驗 獲得超4個贊
原型允許您定義像內置函數一樣的函數。
括號是可選的。 上下文是強加在論點上的。
sub mypush(\@@) { ... }
mypush @array, 1, 2, 3;
\
它們必須在編譯時可見。 他們可以被繞過。 將上下文傳播到參數可能會導致意外行為。 除了嚴格規定的形式之外,它們還會使調用函數變得困難。

TA貢獻1898條經驗 獲得超8個贊
&function(...)
$
my @array = qw(a b c);foo(@array);foo(@array[0..1]);foo($array[0], $array[1], $array[2]);sub foo ($;$$) { print "@_\n" }foo(@array);foo(@array[0..1]);foo($array[0], $array[1], $array[2]);
a b c a b a b c3b a b c
main::foo() called too early to check prototype
添加回答
舉報