@array = qw(one two three four five six seven eight); <Some command here> print @array;
Вот несколько способов, в порядке возрастания немоты:
Использование среза :
@array = @array[ 5 .. $#array ];
Использование splice:
splice
splice @array, 0, 5;
Использование shift:
shift
shift @array for 1..5;
Использование grep:
grep
my $cnt = 0; @array = grep { ++$cnt > 5 } @array;
Используя map:
map
my $cnt = 0; @array = map { ++$cnt < 5 ? ( ) : $_ } @array;
Я уверен, что хакеры намного лучше, чем я могу придумать даже более тупые способы.:)
Вы ищете сращивание встроенный:
splice @array, 0, 5; сделает это.
В качестве комментария к ответу Фридо и для демонстрации классного нового объявления state здесь используется grep, который эмулирует map Фридона.
state
#!/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;
Кстати, это, вероятно, наименее эффективный способ сделать это, просто развлекаясь:)