#!/usr/bin/perl use warnings; use strict; use Text::CSV_XS qw{ csv }; my @header = qw( first_name last_name phone ); csv(in => [ \@header, map [ @$_{@header} ], { first_name => 'Jack', last_name => 'Tors', phone => '555-1212' }, { first_name => 'Frank', last_name => 'Rizzo', phone => '555-1515' }, ]);