Следующий код Perl напечатает «1», однако функция test2
действительно не имеет законного входного значения. Почему Perl действует таким образом?Perl «скалярная» функция возвращает «1» на пустой массив
test();
sub test {
my ($var) = @_;
test2($var);
}
sub test2 {
my (@array) = @_;
print scalar @array;
}
Это именно то, что я хочу. Благодаря! – tjwrona1992
'test2 (определенный ($ var)? $ Var:())' aka 'test2 ($ var //())' также может представлять интерес. – ikegami
На самом деле, сделав немного больше копания, я нашел это: 'BEGIN {* test = \ & test2}', что делает функцию 'test' по определению такой же, как' test2', создающей псевдоним для этой функции. Это действительно функциональность, которую я искал. – tjwrona1992