sub write_columns { my ($fh, $columns) = @_; if (defined($columns->{$fields[0]})) { $csv->print($fh, [ @{$columns}{ @fields } ]); } } open(my $fh, '>', $qfn) or die("Can't create output file \"$qfn\": $!\n"); write_columns($fh, $columns);