[ale] Parsing CSV file in perl

Christopher Fowler cfowler at outpostsentinel.com
Wed Jul 6 16:50:35 EDT 2005


I'm trying to parse a CSV file in perl and I'm having a issue with some
of the columns being blank.

Here is a sample piece of data.

Id    LASTNAME    FIRSTNAME
      Adams       Portia
10572 Alexander   Robert

You can see that the first row does not have an ID.  This can be true
for all columns.  They may or may not have values.  

Here is how I'm trying the parse:

open TXT, "< Expanded_2005_Select_1.csv";
while(<TXT>) {
        m/^(\d+?)\t/;
        print "$1\n";
}

Each columns is tab delimeted.  When I run this I get the lastname in $1
for the first line and the the ID in $1 for the second line.  I need to
somehow create a regex that would be unforgiving of nothing being there.

Data file looks like this:
      1 "ID"    "LASTNAME"      "FIRSTNAME"     "TITLE" "COMPANY"
"ADDRESS        "       "ADDRESS2"      "CITY"  "STATE" "ZIPCODE"
"COUNTRY"               "PHONE" "EMAIL" "REGTYPE"       "DATE"  "TIME"
"Question1"     "Questio        n2"     "Question3"     "READERID"
      2         "Adams" "Portia"        "Director"      "The Rockefeller
Univers        ity"    "1230 York Ave "                "New York"
"NY"    "10021-6        399"    "USA"   2123277719
"adams at rockefeller.edu" "Member"                
      3 10572   "Alexander"     "Robert"        "Manager Voice & Video
Solution"                "Air Products and Chemicals, Inc"       "7201
Hamilton Blvd"                    "Allentown"     "PA"    "18195-1501"
"USA"   "610-481-7156"          "alexanrw at airproducts.com"      "Member"
06/12/2005      06:06:14         pm                             60711

The 1,2,3 that you see is the line numbers in VI




More information about the Ale mailing list