为什么
my $i=0;
my @arr=();
sub readall {
foreach (@_) {
$arr[$i] = shift @_;
$i++;
}
}
readall(1, 2, 3, 4, 5);
print "@arr"
和
my $i=0;
my @arr=();
sub readall {
foreach (@_) {
$arr[$i] = shift @_;
print $arr[$i];
$i++;
}
}
readall(1, 2, 3, 4, 5);
只打印三个参数到readall
?
为什么这个看起来应该表现相同的函数处理所有五个参数?
sub readall {
foreach (@_) {
print $_;
}
}
readall(1, 2, 3, 4, 5);
这也读取所有五个(但确实以不同的原则运作):
my @arr=();
sub readall {
push(@arr, @_);
}
readall(1, 2, 3, 4, 5);
print "@arr"