If you need to escape characters in a regular expression, you can reliably use either the quotemeta
function or the delimiters \Q
, as described in Quote and Quote like Operators
. For example, you would successfully split with
my @arr = split /\Q),(\E/, $str;
On examining your input, it's possible you'll get more mileage from either a state machine character-wise parser, a regular expression, or my favorite in this context, multiple operations including a different basic split. Since you appear to be separating tuples, you could use
my @arr = split /(?<=\))\s*,\s*(?=\()/, $str; to separate the tuples, and then deal with each one individually.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.