Showing posts from September, 2009

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: 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 updat…