Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: The future of Text::CSV_XS - TODO

by dipster (Novice)
on Oct 30, 2007 at 08:03 UTC ( #647987=note: print w/ replies, xml ) Need Help??


in reply to The future of Text::CSV_XS - TODO

Firstly, what a great module, thanks! I've always found it reliable and effective.

It would be handy if string() returned the string read by getline().

Although this does seem to work...

use Text::CSV_XS; use IO::File; # tell/seek fails if i omit this line my $file = "1,2,3\n4,5,6\n7,8,9\n10,11,12\n13,14,15"; open (my $io, '<', \$file); # Open filehandle to in memory file my $csv = Text::CSV_XS->new(); while (1) { my $start = tell($io); my $colref = $csv->getline($io); last unless $colref; print "Array: @$colref\n"; my $length = tell($io) - $start; seek($io, $start, 0); read($io, my $string, $length); print "String: <$string>\n"; }

What do you think? Would it be possible for Text::CSV_XS to return the string more efficiently?

I've also wondered whether eol would always be limited to a finite set of predefined strings?

Thanks again.
Steve


Comment on Re: The future of Text::CSV_XS - TODO
Download Code
Re^2: The future of Text::CSV_XS - TODO
by Tux (Monsignor) on Oct 30, 2007 at 17:06 UTC

    That could be done, but not by default, as this has a big impact on performance, as now every getline () result has to be copied/stored in a location that string () can return to the user.

    The solution you post is only viable if the input stream is seek'able, and will not work on pipes. This is one of the reasons why this module is not capable of determining the line characteristics on the fly.


    Enjoy, Have FUN! H.Merijn

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2014-08-01 03:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (256 votes), past polls