use strict;
use IO::Handle;
use Text::CSV_XS;
use XML::Rules;
my $csv = Text::CSV_XS->new ({binary => 1});
my $xml = XML::Rules->new(rules=>[]);
my $headers = $csv->getline(\*DATA) or die "The file is not CSV!\n";
print "<ADDRESSES>\n";
while (my $row = $csv->getline(\*DATA)) {
my @data;
for my $i (0 .. $#$headers) {
push @data, {name => $headers->[$i], value => $row->[$i]};
}
print ' ', $xml->ToXML(struct => {field => \@data}, 0, ' ', ' '), "\n";
}
print "</ADDRESSES>\n";
__END__
First,Last,City
John,Doe,San Francisco
Jane,Johnson,New York City