Hello.
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;
OUTPUT:
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
s/\)([^()]+)\(/]${1}[/g;
# to surround the whole variable name which is interpreted inside a st
+ring
In reply to $1[
by rsFalse
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|