http://www.perlmonks.org?node_id=875454


in reply to csv'ish string with parens that include commas

Use Regexp::Common::list, something like this (presuming your strings and all word characters):
use Regexp::Common 'list'; my $re = qr{ \w+ # word characters (word or function name) (?:\($RE{list}{-pat=>'\w+'}\))? # (optional parameters) }x; my $x = 'joe,sam,x(monkey,lemur)'; my @x = ($x =~ m{$re}g); print join("\n", @x);
returns:
joe sam x(monkey,lemur)

Replies are listed 'Best First'.
Re^2: csv'ish string with parens that include commas
by ascetic (Novice) on Dec 05, 2010 at 04:07 UTC

    Thanks. Actually, some of the args will be numbers, but I should be able to take it from here.

    I also looked at using Text::Balanced for a bit, but it seemed like using a hammer to drive a screw.

      \w matches letters, digts and underscore, so that should be sufficient.