[Omaha.pm] Processing a CSV file.

djgoku at gmail.com djgoku at gmail.com
Mon Oct 28 13:58:24 PDT 2013


Maybe https://metacpan.org/pod/Text::CSV::Hashify

Jonathan Otsuka

On Oct 28, 2013, at 3:39 PM, Dan Linder <dan at linder.org> wrote:

> I have a simple CSV file with the header row, and a values row.  For a secondary system to process the data I need to massage the CSV into a Key-Value pair file.
> 
> Example of CSV:
> name,age,gender,zip
> john,33,male,68000
> 
> What I need is to produce a file with this:
> name=john
> age=33
> gender=male
> zip=68000
> 
> Using Text::CSV I'm close, but I don't like the code I came up with:
> my $csv = Text::CSV->new( { binary => 1 } );
> my $headers = $csv->parse($search_results_csv->getline());
> my @headers2 = $csv->fields();
> my $values = $csv->parse($search_results_csv->getline());
> my @values2 = $csv->fields();
> for (my $index = 0; $index < scalar @headers2; $index++ ) {
> printf ("%s=%s\n", $headers2[$index], $values2[$index]);
> }
> 
> Is there a cleaner way of getting the @headers2 and @values2 array and then walking through both of them in the for loop?
> 
> I thought I could set the header once (using column_names() ?) and then pull in the values line and do a foreach on the headers, but I couldn't get that to work.
>  
> Thoughts or examples?
> 
> Thanks,
> Dan
> 
> -- 
> ***************** ************* *********** ******* ***** *** **
> "Quis custodiet ipsos custodes?"
>     (Who can watch the watchmen?)
>     -- from the Satires of Juvenal
> "I do not fear computers, I fear the lack of them."
>     -- Isaac Asimov (Author)
> ** *** ***** ******* *********** ************* *****************
> _______________________________________________
> Omaha-pm mailing list
> Omaha-pm at pm.org
> http://mail.pm.org/mailman/listinfo/omaha-pm

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/omaha-pm/attachments/20131028/db1eb559/attachment.html>


More information about the Omaha-pm mailing list