Подтвердить что ты не робот

Какой лучший способ получить последние N элементов массива Perl?

Какой лучший способ получить последние N элементов массива Perl?

Если массив имеет меньшую, чем N, я не хочу иметь пучок undefs в возвращаемом значении.

4b9b3361

Ответ 1

@last_n = @source[-$n..-1];

Если вам не требуется undef s, то:

@last_n = ($n >= @source) ? @source : @source[-$n..-1];

Ответ 2

Я думаю, что вы хотите назвать slice.

Ответ 3

@a = (a .. z);
@last_five = @a[ $#a - 4 .. $#a ];
say join " ", @last_five;

выходы:

v w x y z

Ответ 4

простой, без математики:

@a = reverse @a;
@a = splice(@a, 0, $elements_to_keep);
@a = reverse @a;

Ответ 5

 my $size = (scalar @list) - 1;
 my @newList = @list[$size-$n..$size];