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

#!/usr/bin/perl while(<DATA>){ print $_; } __DATA__ Hi & How r u &quot; How r u &amp; dear &quot;
How to replace only single character & to & where the output should look like
Hi &amp; How r u &quot; How r u &amp; dear &quot;

Replies are listed 'Best First'.
Re: replace &amp;
by moritz (Cardinal) on Aug 20, 2009 at 10:52 UTC
Re: replace &amp;
by Sue D. Nymme (Monk) on Aug 20, 2009 at 12:27 UTC

    How would you want the following input to be handled?

    I spoke with Bill&Ted; they're fine.
Re: replace &amp;
by JavaFan (Canon) on Aug 20, 2009 at 10:59 UTC
    Why bother? A lone '&' is perfectly valid HTML, and all major browsers display it correctly. '&' only needs escaping if it could be parsed as part of an entity when it shouldn't.

      "Why bother?" - presumably because that was the assignment ;)

      Anon Monk, can we see your efforts before we try and help? That said, it sounds like you need to match an ampersand that has a whitespace character before and after it...

      map{$a=1-$_/10;map{$d=$a;$e=$b=$_/20-2;map{($d,$e)=(2*$d*$e+$a,$e**2 -$d**2+$b);$c=$d**2+$e**2>4?$d=8:_}1..50;print$c}0..59;print$/}0..20
      Tom Melly, pm (at) cursingmaggot (stop) co (stop) uk