rsFalse has asked for the wisdom of the Perl Monks concerning the following question:


I was trying to convert parentheses to square brackets in my program:
#!/usr/bin/perl use warnings; use strict; $\ = $/; $_ = reverse "(a+b)*c"; # or some longer sequence s/\)([^()]+)\(/]$1[/g; print scalar reverse y/][/)(/r;
syntax error at ./ line 13, near "y/][/)(/r;" Execution of ./ aborted due to compilation errors.
I guess that perl tried to interpret $1[ as element of an array @1? So I solved this problem in two ways, using:
s/\)([^()]+)\(/]$1\[/g; # '[' is not a metachar here
and usual way
s/\)([^()]+)\(/]${1}[/g; # to surround the whole variable name which is interpreted inside a st +ring