Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^4: Best Way To Parse Concordance DAT File Using Modern Perl?

by Jim (Curate)
on Dec 10, 2012 at 22:52 UTC ( #1008179=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Best Way To Parse Concordance DAT File Using Modern Perl?
in thread Best Way To Parse Concordance DAT File Using Modern Perl?

Thanks, graff!

The problem with having to handle the BOM oneself is that, though it works with Text::CSV_XS-parse(), it doesn't work with Text::CSV_XS->getline().

Suppose we have this multi-line CSV record. There's a literal newline in field five.

my $csv_record = qq{\N{BYTE ORDER MARK}"Field One","Field 2",3,4,"Fiel +d Five" };

How would one parse this record using Text::CSV_XS?

(See the companion thread titled Peculiar Reference To U+00FE In Text::CSV_XS Documentation for more information about this topic.)

Jim


Comment on Re^4: Best Way To Parse Concordance DAT File Using Modern Perl?
Download Code
Re^5: Best Way To Parse Concordance DAT File Using Modern Perl?
by graff (Chancellor) on Dec 11, 2012 at 07:22 UTC
    Ah. What a pisser. I wonder if you could make Text::CSV_XS work by reading from STDIN... If so, you would just filter out all the BOM characters before feeding the data to your script:
    perl -CS -pe 'tr/\x{feff}//d' < source_file.dat | your_csv_parser ...
    Either that, or else redirect the output of that one-liner to create a cleansed version of the DAT file that has all the BOMs stripped out, and use that "bastardized" version of the data as input to the parser. (I assume that getting the data parsed is more important that preserving its obtuse fixation with BOM characters.)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2014-09-20 21:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (163 votes), past polls