open my $tsvFH, ">", "out.tsv"; my @header = qw (TYPE RFORM REC-SIZE CREATION LAST-RD STATE EXEC_COPIES DATA-BEGIN DAT-END RELEASE); print $tsvFH $_ . "\t" for @header; print $tsvFH "\n"; for my $row (@excel_rows) { print $tsvFH $row->{$_} ? $row->{$_} . "\t" : "\t" for @header; print $tsvFH "\n"; }