That's done !!!

This was the problem I was facing since months ! got solved in a day here !

Thanks a lot to all. Long live [EMAIL PROTECTED] !

Girish


> -----Original Message-----
> From: Jeff 'japhy' Pinyan [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, October 25, 2001 6:52 PM
> To: Girish (Skyscape)
> Cc: [EMAIL PROTECTED]
> Subject: Re: Regex query
>
>
> On Oct 25, Girish (Skyscape) said:
>
> >%Replacements = (
> >      ";s(\d)",      "<sup>$1</sup>"
> >     ,";b(\d)",      "<sub>$1</sub>"
> >);
>
> Your problem is that these double-quoted strings get interpolated right
> here.  "\d" is "d", and "$1" is whatever the value of $1 is at the
> time.  You'll need to take a more involving approach:
>
>   $inputstr = "E=mc;s2";
>
>   %rep = (
>     ';s(\d)' => '"<sup>$1</sup>"',
>     ';b(\d)' => '"<sub>$1</sub>"',
>   );
>
>   for $x (keys %rep) {
>     $inputstr =~ s/$x/$rep{$x}/eeg;
>   }
>
>   print $inputstr;
>
> There are two levels of indirection here -- the first is the single quoted
> string '"<sup>$1</sup>"', and the second is that fact that that single
> quoted string has a double quoted string inside it.  That's because we're
> using /ee on the s///, which means "eval() the right side twice".  The
> first time, $rep{$x} evaluates to "<sup>$1</sup>", and the second time, it
> evaluates to a string, where $1 is interpolated.
>
> --
> Jeff "japhy" Pinyan      [EMAIL PROTECTED]      http://www.pobox.com/~japhy/
> RPI Acacia brother #734   http://www.perlmonks.org/   http://www.cpan.org/
> ** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to