more useful options | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
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:
In reply to Re: Use of Text::ParseWords
by 7stud
|
|