Ответ 1
@last_n = @source[-$n..-1];
Если вам не требуется undef
s, то:
@last_n = ($n >= @source) ? @source : @source[-$n..-1];
Какой лучший способ получить последние N элементов массива Perl?
Если массив имеет меньшую, чем N, я не хочу иметь пучок undefs
в возвращаемом значении.
@last_n = @source[-$n..-1];
Если вам не требуется undef
s, то:
@last_n = ($n >= @source) ? @source : @source[-$n..-1];
Я думаю, что вы хотите назвать slice.
@a = (a .. z);
@last_five = @a[ $#a - 4 .. $#a ];
say join " ", @last_five;
выходы:
v w x y z
простой, без математики:
@a = reverse @a;
@a = splice(@a, 0, $elements_to_keep);
@a = reverse @a;
my $size = (scalar @list) - 1;
my @newList = @list[$size-$n..$size];