use warnings; use strict; use Data::Dump; open my $fh, '<', 'test.txt' or die $!; my @lines = do { local $/=''; <$fh> }; chomp @lines; close $fh; dd @lines; __END__ ("line1\nline2\n", "line4\n", "line7\nline8\n", "line9\n") #### open my $fh, '<', 'test.txt' or die $!; while (my $line = <$fh>) { print $line if length $line && $line ne $/; # - OR - push @newlines, $line if length $line && $line ne $/; # - OR - chomp($line); next unless length $line; print $line, "\n"; # etc. } close $fh;