【发布时间】:2014-01-11 16:21:08
【问题描述】:
my @writers = qw( Horace Ovid Virgil Asimov Heinlein Dante );
my @contemporary = splice @writers, 3, 2;
print join(' ', @contemporary);
输出
Asimov Heinlein
my @writers = qw( Horace Ovid Virgil Asimov Heinlein Dante );
splice @writers, 3, 2;
print join(' ', @writers); # Horace Ovid Virgil Dante
输出
Horace Ovid Virgil Dante
这些脚本有什么区别。为什么它显示不同的输出?
【问题讨论】:
-
因为在第一种情况下,您正在打印
splice的返回值,而在第二种情况下,您会看到splice对数组@writers产生的影响。你没有理由期望两者应该是一样的,你的期望是错误的。