在Perl 5中,当我们有一个命名数组时,例如@a
,从索引$N
开始获取元素很简单,只需进行一点切片:
my @result = @a[$N..$#a];
有没有一种标准的方法可以对匿名数组执行同样的操作,而不必显式地提供长度?例如,可以这样做:
my @result = (0,1,2,3,4,5)[2..5];
或者更具体地说,这是:
my @result = (0,1,2,3,4,5)[$N..5];
转换成不需要显式上限的东西?也许是一些晦涩的Perl语法?也许是一点切割而不是切片?
PS:我已经把它写成了一个函数--我正在寻找一个更独立的方法。
4条答案
按热度按时间vkc1a9a21#
您可以
splice
它:j8ag8udp2#
如果将数组ref设置为topic,则不需要为其给予名称:
或者,如果您使用的是列表:
ttisahbt3#
我认为mob的
splice
是最好的选择,但本着选择的精神:这将返回与上例相同的结果:
fslejnso4#
我只使用数组变量来获取len: