use List::MoreUtils qw( apply ); print OUTFILE apply { s/\s*#.*//; } grep { !/^\s*#/ } ;