Ruprecht Helms wrote:
> Hi,
>
> how can I parse a csv-file where the entries are seperated with | .
> The scripts later should put them into a mysql-database using dbi.
>
> Especially for me is interessting how to parse the content of the file
> and store them into different variables for later processing.
> A scriptexample would be nice.
Most of the replies have suggested using 'split( /\|/, $line )'.
However, this ignores a potentially important aspect of common cvs
file formats - well, important to me, anyway - which is the
interaction between quotes, field delimiters, and newlines:
"Harry|Sally" | Sleepless
Jack|"Jill
""Walker"""
_should_ parse into two records of two fields each:
record 1: (2 fields)
Harry|Sally
Sleepless
record 2: (2 fields)
Jack
Jill\n"Walker"
If I merely split lines on /\|/, I get:
record 1: (3 fields)
"Harry
Sally"
Sleepless
record 2: (2 fields)
Jack
"Jill
record 3: (1 field)
""Walker"""
I need this so that I can use csv files generated by spreadsheet
applications such as OpenOffice.org.
--
Jonathan "Dataweaver" Lang
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/