Какой лучший способ получить последние N элементов массива Perl? Какой лучший способ получить последние N элементов массива Perl? Если массив имеет меньшую, чем N, я не хочу иметь пучок undefs в возвращаемом значении. Ответ 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];
Ответ 1 @last_n = @source[-$n..-1]; Если вам не требуется undef s, то: @last_n = ($n >= @source) ? @source : @source[-$n..-1];
Ответ 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;