Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Text::ParseWords

by derby (Abbot)
on Oct 06, 2001 at 05:22 UTC ( #117152=note: print w/replies, xml ) Need Help??

in reply to Text::ParseWords

Brother Kozz,
You have committed no sins, you're soul is clean. Looking at Text::Parsewords, the reqex is kinda of hairy and doesn't handle the case you've thrown at it. (my numbers)
1. while (length($line)) { 2. ($quote, $quoted, undef, $unquoted, $delim, undef) = 3. $line =~ m/^(["']) # a $quote 4. ((?:\\.|(?!\1)[^\\])*) # and $quoted text 5. \1 # followed by the same quote 6. ([\000-\377]*) # and the rest 7. | # --OR-- 8. ^((?:\\.|[^\\"'])*?) # an $unquoted text 9. (\Z(?!\n)|(?-x:$delimiter)|(?!^)(?=["'])) # plus EOL, delimiter, or quote 10. ([\000-\377]*) # the rest 11. /x; # extended layout 12. return() unless( $quote || length($unquoted) || length($delim));
In your case, we fail the first part of the regex (lines 3-5) because we only have a single quote. We also fail the second part of the regex (lines 8-10) because we do start with a quote. Since we've failed the match, $quote is undef, $unquoted is undef and $delim is undef. As a result of them all being undef, an empty list is returned.
Maybe some of the more regex-y inclined brothers can think of a replacement regex. It hurts me just to read the ones like this.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://117152]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2017-02-20 01:12 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (293 votes). Check out past polls.