in reply to Dynamically map the elements of CSV

I think this is what you want:
my @entries; my @keys; while ($_ = <DATA>) { if ($. == 0) { # first line @keys = split /;/; next; } my %data; $data{@keys} = split/;/; push @entries, \%data; }

Update: updated some code errors.

Igor 'izut' Sutton
your code, your rules.