首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl脚本中的拼接

perl脚本中的拼接
EN

Stack Overflow用户
提问于 2013-12-23 12:34:03
回答 1查看 3.3K关注 0票数 3
代码语言:javascript
复制
my @writers = qw( Horace Ovid Virgil Asimov Heinlein Dante );
my @contemporary = splice @writers, 3, 2;
print join(' ', @contemporary);

输出

代码语言:javascript
复制
Asimov Heinlein
代码语言:javascript
复制
my @writers = qw( Horace Ovid Virgil Asimov Heinlein Dante );
splice @writers, 3, 2;
print join(' ', @writers); # Horace Ovid Virgil Dante

输出

代码语言:javascript
复制
Horace Ovid Virgil Dante

这些脚本之间有什么区别。为什么它表现出不同的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-23 12:48:12

这里

代码语言:javascript
复制
 my @contemporary = splice @writers, 3, 2;
 print join(' ', @contemporary);

它返回已删除的元素。

在这里

代码语言:javascript
复制
splice @writers,3,2;
print join(' ', @writers)

它只打印数组的元素。

例如,在标量上下文中

代码语言:javascript
复制
 my $contemporary = splice @writers, 3, 2;
 print $contemporary;

它将打印已删除的最后一个元素。

来自perldoc

从数组中移除由偏移量和长度指定的元素,并将它们替换为LIST元素(如果有的话)。在列表上下文中返回从数组中删除的元素。在标量上下文中,返回删除的最后一个元素,如果没有删除元素,则返回undef。数组在必要时增长或缩小。如果偏移量为负值,则从远离数组末尾的地方开始。如果省略长度,则从偏移开始删除所有内容。如果长度为负数,则从偏移量中移除数组末尾的-LENGTH元素以外的元素。如果省略偏移量和长度,则删除所有内容。如果偏移量超过数组的末尾,Perl将发出警告,并在数组的末尾连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20743698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档