@array = qw(one two three four five six seven eight);
<Some command here>
print @array;
@array
数组,并在遍历前五个元素后将这些元素重新赋值给该数组。使用三元条件和$cnt
变量来评估是否已经遍历了这五个元素。 - cyber-guardsplice
是执行此操作的方法,并且可以高效地执行此操作。自分配数组切片必须复制每个切片元素,最坏情况下需要 2*n
的空间来执行此操作。实际上,我可能会将其放在重复移位示例之下。 - Eric Strom$#array
这个变量吗?那个变量的使用真的让我很困惑。发生了什么事情,为什么井号没有注释掉东西? - Tomsplice @array, 0, 5;
就可以了。
#!/usr/bin/perl
use strict;
use warnings;
use feature 'state';
my @array = qw(one two three four five six seven eight);
my @new_array = grep {state $count; ++$count > 5} @array;
print "$_\n" for @new_array;
我刚意识到你只需要最后一个字符串,所以不需要循环
my $_ = "@array"; s|(?:.*?\s){5}||;say;
@array
的任何元素包含空格或者$" ne ' '
,那么这个解决方案就会失效。 - Eric Strom
print join("\n", @array[5..$#array]), $/;
。 - Ashley