Hi John,
Thank you very much for your help. As I remember this is the 4th
question you have answered to me. Thanks once again.
Regards,
Ganesh
John W. Krahn wrote:
N. Ganesh Babu wrote:
Dear All,
Hello,
My test is as follows:
$line = "jlla jldsfjlfj lfla (1\p=n-\5) fk (2) ljljj ljlfaufi
lfjlakfh (10, 11) lfjdlaj (10, 11\p=n-\15) ndsfdjksnk (2, 15, 16)
dkhfak";
Backslashes are interpolated in double quoted strings. Perhaps you
meant to escape the backslashes or use a single quoted string instead?
my output of the $line should be like this.
$line = "jlla jldsfjlfj lfla (<lr=C1>1</lr>\p=n-\<lr=C5>5</lr>) fk
(<lr=C2>2</lr>) ljljj ljlfaufi lfjlakfh (<lr=C10>10</lr>,
<lr=C11>11</lr>) lfjdlaj (<lr=C10>10</lr>,
<lr=C11>11</lr>\p=n-\<lr=C15>15</lr>) ndsfdjksnk (<lr=C2>2</lr>,
<lr=C15>15</lr>, <lr=C16>16</lr>) dkhfak";
my code is as follows:
$line=~s!\(([1-9]{1,3}((,
|\\p=n-\\)[1-9]{1,3})*)\)!\(@{[map"<lr=C$_>$_</lr>",split"(,
|\\p=n-\\)",$1]}\)!g;
I am getting the following error:
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE , |\p=n-\)/
at s.pl line 8.
Please help in rectifing the error mentioned.
Your problem is that the replacement string is being evaluated as well
as interpolated so "\\)" becomes "\)" after interpolation and ")"
after evaluation.
You want something like:
$line =~ s!(\([^)]+\))! ( my $x = $1 ) =~ s-(\d+)-<lr=C$1>$1</lr>-g;
$x !eg;
John
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>