in reply to Use of Text::ParseWords
You have a perl string containing this text:
"Jones, James", "Smith, Susan", Spot
The goal: split the string on the commas--but not where the commas are inside double quote marks.
A natural first thought might be to use split(). However, the code:
my @pieces = split /,/, $string;will split the string on every comma, giving you the pieces:
The function quotewords() is in a module called Text::ParseWords, which is found here:
http://perldoc.perl.org/Text/ParseWords.html
and quotewords() accepts a list of lines and a delimiter and
breaks those lines up into a list of words ignoring delimiters that appear inside quotes.
In addition, if the second argument to quotewords() is false, e.g. 0, then quotewords() will strip the quote marks surrounding any of the pieces.
By looking at the result of the join():
Jones, James & Smith, Susan & Spot
you can tell what quotewords() returned as the pieces:
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Use of Text::ParseWords
by blackgoat (Acolyte) on Feb 08, 2010 at 10:04 UTC |