use List::Util qw(max); my @lines = split /\n/, $str; my $prefix = join "\n", @lines[0..@lines-16]; my $postfix = join "\n", @lines[max(0, @lines-15)..$#lines];