in reply to m//g in list and scalar context differences?
There is an extra empty item returned. No easy way to avoid that, that I can think of.>perl -e "my $x = qq['foo',123,'bar\\'cuz', 'comma,comma',,'void']; map { print qq[<$_;\n]; } $x=~m/((?:'[^']*'|[^'\s,]+|))(?:[$|,\s]|$ +)/g;" <'foo'; <123; <'cuz'; <; <'comma,comma'; <; <'void'; <;
Note the use of non-capturing parens "(?:" - quite useful in this context, so each iteration returns only a single capture, because the first paren IS a capturing paren.
"As you get older three things happen. The first is your memory goes, and I can't remember the other two... " - Sir Norman Wisdom
|
|---|