Super Sweet CSV parsing with Perl
Today, everyday, every other day I need to pull in CSV files and write others out. After awhile, I was ready for a better solution. Lucky for me, the Perl community is amazing.
For some amazing parsing options look no further than Text::CSV_XS, it provides a super sweet parsing interface. No talking just pure Perl code:
That's for parsing. You can do some other super cool stuff too, with bind_columns. Lets' assume the file has the format of 'first name, last name, email address'.
Here the parsing loop updated with it:
Painfully good :)
A pretty good post/article about CSV and Perl at perlmeme.org: Parse CSV
For some amazing parsing options look no further than Text::CSV_XS, it provides a super sweet parsing interface. No talking just pure Perl code:
use strict;
use warnings;
use Text::CSV_XS;
my $csv = Text::CSV_XS->new( {eol => "\n"} ); # eol has nothing to do with parsing wait until later :)
my $input = shift || die "Missing filename\n";
open my $fh, '<', $input
or die "Failed to open $input: $!\n";
# assume no file header
while ( my $columns = $csv->getline($fh) ) {
print $columns->[0], $columns->[1], "\n"; # or whatever you want to do
}
close $csv;
That's for parsing. You can do some other super cool stuff too, with bind_columns. Lets' assume the file has the format of 'first name, last name, email address'.
Here the parsing loop updated with it:
# assume no file header
# declare variables
my ($firstname, $lastname, $email);
# tell csv positions
$csv->bind_columns( \$firstname, \$lastname, \$email );
# process data
while ( my $columns = $csv->getline($fh) ) {
$email->send( $firstname, $lastname, $email);
}
Painfully good :)
A pretty good post/article about CSV and Perl at perlmeme.org: Parse CSV
Comments
Post a Comment