|
|
|
good chemistry is complicated, and a little bit messy -LW |
|
| PerlMonks |
Re^5: edit a CSV and "in-place" replacementby Tux (Prior) |
| on Jun 22, 2012 at 09:31 UTC ( #977811=note: print w/ replies, xml ) | Need Help?? |
|
The original question was "in-place-editing" required. Using the CSV module(s) Text::CSV_XS (used in DBD::CSV) and/or Text::CSV (which uses Text::CSV_XS if available for speed) you cannot in-place edit, but you can set up two instances: one for input, and one for output. This has to be used instead of DBD::CSV if there are no headers or no unique keys, somewhat along these lines:
Which is safe for embedded comma's as you describe (when correctly quoted). On huge files, you can speed this even using bind_columns (). Another (huge) advantage is that this is MUCH faster than using DBD::CSV, has no size limits (other than disk storage) and can be used in streams, both in and out. DBD::CSV is likely to keep the complete file in memory, probably even twice. Enjoy, Have FUN! H.Merijn
In Section
Seekers of Perl Wisdom
|
|
||||||||||||||||||||