有没有办法在Perl的一个匿名数组的最后获取一个切片?

发布时间:2020-01-11 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了有没有办法在Perl的一个匿名数组的最后获取一个切片?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以这一直让我在过去的半个小时里去乞丐.我有没有办法把一个数组切片到一个匿名数组的末尾?我试过了:
(split(”,$test_line))[1 .. $#_]
我试过:
(split(”,$test_line))[1 ..- 1]
但更严重的是,这些都不工作.我真的不想有一个额外的临时变量实例化到中间数组(我不需要).而我真的不想使用一个丑陋和不可读的一个班轮(发现在线的几个).真的没有直接的方法吗?

解决方法

一个列表,这是你在你的例子中,不能从最后切片.这主要是因为列表在Perl中不是正确的数据结构,而是一个解释器用来移动数据的结构.所以知道你只能从开始的一个列表切片,你的选择是把它放在一个数组变量然后切片,改变你的算法返回你想要的,或以下:

如果你把这个值分配给某个东西,你可以在你不想要的每个插槽中使用undef:

my (undef,@list) = split ' ' => $test_line;

如果你发布更多的代码,我可以修改.

或者,您可以使用功能编程中的一些工具.一对函数drop和take可用于调整列表大小而无需其他变量:

sub take {
    my $n = shift;
    @_[0..$n-1]
}
sub drop {
    my $n = shift;
    @_[$n..$#_]
}

然后你的例子变成了

drop 1,split ' ' => $test_line;

滴1也通常称为尾巴

sub tail {drop 1,@_}

当然,由于所有这些都很短,如果你想内联它:

sub {shift; @_}->(split ' ' => ...)

大佬总结

以上是大佬教程为你收集整理的有没有办法在Perl的一个匿名数组的最后获取一个切片?全部内容,希望文章能够帮你解决有没有办法在Perl的一个匿名数组的最后获取一个切片?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。