I was trying to convert parentheses to square brackets in my program:
$\ = $/;
$_ = reverse "(a+b)*c"; # or some longer sequence
print scalar reverse y/][/)(/r;
syntax error at ./bracket.pl line 13, near "y/][/)(/r;"
Execution of ./bracket.pl 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
# to surround the whole variable name which is interpreted inside a st