use Text::CSV_XS qw( ); my $csv = Text::CSV_XS->new({ always_quote => 1, }); while (...) { my %dataRow = ...; $csv->combine(@dataRow{qw( field1 field2 field3 field4 field5 )}) or die; print OUTPUTFILE $csv->string() or die; }