#!/usr/bin/perl use strict; use IO::All; use warnings; use Data::Dumper qw(Dumper); my @lines = io('in.txt')->chomp->slurp; # Chomp as you slurp print Dumper \@lines; @lines = grep { $_ ne '' } @lines; # Skip empty elements print Dumper \@lines; __END__ $ perl test.pl $VAR1 = [ 'line1', 'line2', '', 'line4', '', 'line6' ]; $VAR1 = [ 'line1', 'line2', 'line4', 'line6' ]; #### #!/usr/bin/perl use strict; use warnings; use Data::Dumper qw(Dumper); my @lines; while (<>) { chomp; next if /^\s*$/; # skip blank lines; # next if /^\s*#/; # skip comments push @lines, $_; } continue { close ARGV if eof; # Not eof()! } print Dumper \@lines; __END__ $ perl test.pl in.txt $VAR1 = [ 'line1', 'line2', 'line4', 'line6' ];