在另一个Stack Overflow问题中, Leon Timmermans断言:
我建议你不要使用原型.它们有它们的用途,但对大多数情况并非如此,绝对不是在这个例子中.
为什么这可能是真的(或其他)?我几乎总是为我的Perl函数提供原型,而且我从来没有见过其他任何人说使用它们的坏事.
如何将两个数组和一个字符串传递给子?
这是我正在尝试做的事情:
use strict;
use warnings;
my @x = qw(AAAA BBBB CCCC DDDD EEEE);
my @y = qw(1111 2222 3333 4444 5555);
my $z = "hello";
Hello(@x,@y,$z);
exit(0);
sub Hello {
my (@x,@y,$z) = @_;
print "$_\n" for @x;
print "$_\n";
print "$_\n" for @y;
print "$_\n";
print "$z\n";
}
Run Code Online (Sandbox Code Playgroud)
输出:
AAA
BBBB
CCCC
DDDD
EEEE
1111
2222
3333
4444
5555
hello
Use of uninitialized value $_ in concatenation (.) or string at test.pl line 19.
Use of uninitialized value …Run Code Online (Sandbox Code Playgroud)