我有以下测试代码:
sub one_argument {
($a) = @_;
print "In one argument: \$a = $a\n";
return "one_argument";
}
sub mul_arguments {
(@a) = @_;
return "mul_argument";
}
print &one_argument &mul_arguments "something", "\n";
我的目标是能够更好地理解 perl 如何决定将哪些参数放入每个函数,并可能消除我可能存在的任何误解。我本来希望上面的代码输出:
In one argument: mul_argument
one_argument
但是,以下是输出:
Use of uninitialized value $a in concatenation (.) or string at ./test.pl line 5.
In one argument: $a =
mdd_argument
我不明白 'mdd_argument' 来自哪里(它是对函数的一种引用吗?),以及为什么 one_argument 没有收到任何参数。
我会很感激 perl 在以与上面类似的方式调用它们时如何将参数解析为函数的任何见解。
请注意,这纯粹是一个学习练习,我不需要上面的代码按预期执行,在我自己的代码中我不会以这种方式调用函数。