如何删除数组的前五个元素?

neb*_*lus 21 arrays perl list

@array = qw(one two three four five six seven eight);
<Some command here>
print @array;
Run Code Online (Sandbox Code Playgroud)

fri*_*edo 52

以下是一些方法,以增加哑巴的顺序:

使用切片:

@array = @array[ 5 .. $#array ];
Run Code Online (Sandbox Code Playgroud)

使用splice:

splice @array, 0, 5;
Run Code Online (Sandbox Code Playgroud)

使用shift:

shift @array for 1..5;
Run Code Online (Sandbox Code Playgroud)

使用grep:

my $cnt = 0;
@array = grep { ++$cnt > 5 } @array;
Run Code Online (Sandbox Code Playgroud)

使用map:

my $cnt = 0;
@array = map { ++$cnt < 5 ? ( ) : $_ } @array;
Run Code Online (Sandbox Code Playgroud)

我相信黑客远比我能想出的更好的黑客.:)


Eri*_*rom 12

您正在寻找内置拼接:

splice @array, 0, 5;
Run Code Online (Sandbox Code Playgroud)


Ano*_*mie 5

splice @array, 0, 5; 会做的。