Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: A module to parse CSVs line by line with an ability to set delimiter

by Tux (Monsignor)
on Mar 26, 2013 at 14:27 UTC ( #1025534=note: print w/ replies, xml ) Need Help??


in reply to A module to parse CSVs line by line with an ability to set delimiter

You tried Text::CSV, which is the wrapper over Text::CSV_PP (pure perl) and the fast Text::CSV_XS. They both have the same syntax:

use Text::CSV; my $csv = Text::CSV->new ({ binary => 1, # allow binary data auto_diag => 1, # allow automatic warnings and errors sep_char => ",", # , is the default, ; is also use quite often }); open my $fh, "<", "file.csv" or die "file.csv: $!"; while (my $row = $csv->getline ($fh)) { say "The second field is ", $row->[1]; }

If you want a parser WITHIN a parser, just create a second parser

use Text::CSV; my $csv = Text::CSV->new ({ binary => 1, auto_diag => 1, sep_char => ",", }); my $parser = Text::CSV->new ({ binary => 1, auto_diag => 1, sep_char => ";", # sep is ; }); open my $fh, "<", "file.csv" or die "file.csv: $!"; while (my $row = $csv->getline ($fh)) { say "The second field is ", $row->[1]; foreach my $f (@$row) { $parser->parse ($f) or next; my @subfields = $parse->fields; } }

Enjoy, Have FUN! H.Merijn


Comment on Re: A module to parse CSVs line by line with an ability to set delimiter
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1025534]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2015-07-04 15:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls