gri6507 has asked for the wisdom of the Perl Monks concerning the following question:
Is there a more perl-like way to reverse an array into a hash that could then be used to get the index into the data?use warnings; use strict; use Text::CSV; # setup a CSV parser my $csvParser = Text::CSV->new({ binary => 1, sep_char => ',', empty_i +s_undef => 1 }) or die "Cannot create new CSV parser: $!\n"; open my $csvHandle, "<", $csvFile or die "could not open $csvFile: $!" +; # figure out the column headings from the first line my @csvColumns = (); foreach my $colName (@{$csvParser->getline($csvHandle)}) { push @csvColumns, $colName; } # reverse that to allow lookup by name my %csvColumns; for my $colNum (0 .. scalar(@csvColumns)-1) { $csvColumns{$csvColumns[$colNum]} = $colNum; } # access some column in the CSV file by name while (my $line = $csvParser->getline($csvHandle)) { print "Column Foo has value $$line[$csvColumns{Foo}]; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Perl-ish way to create hash from array
by moritz (Cardinal) on Jul 09, 2013 at 17:29 UTC | |
|
Re: Perl-ish way to create hash from array
by kennethk (Abbot) on Jul 09, 2013 at 17:30 UTC | |
|
Re: Perl-ish way to create hash from array
by LanX (Saint) on Jul 09, 2013 at 17:29 UTC | |
|
Re: Perl-ish way to create hash from array
by tangent (Parson) on Jul 09, 2013 at 19:14 UTC | |
|
Re: Perl-ish way to create hash from array
by PrakashK (Pilgrim) on Jul 09, 2013 at 20:58 UTC | |
|
Re: Perl-ish way to create hash from array
by rjt (Curate) on Jul 09, 2013 at 20:42 UTC |