use Algorithm::Loops qw( Filter ); my @lines = grep defined, Filter { s/^\s+//; if( /^#/ ) { undef $_; } else { s/\s+$//; } } <$in>; #### s/^\s+//, s/\s+$// for my @lines= grep ! /^\s*#/, <$in>;