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

if (lc($Message) =~ /^db /) { print "Content-type:text/html\n\n"; print "c=$Message<br>\n"; $Message = s/^db //; $Message = s/^Db //; $Message = s/^dB //; $Message = s/^DB //; print "m=$Message"; exit; }
output is:
c=Db test4 m=

My aim is to remove the initial Db but in fact everything is removed, it would seem.

Why isn't it doing what I expect?

Replies are listed 'Best First'.
Re: search and replace confusion
by davorg (Chancellor) on Nov 08, 2006 at 11:53 UTC

    Your input contains:

    <!-monthstart--><option value="01">January </option>\n

    Your substitution looks for:


    Spot the discrepancy :)


    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg

      Aah, thanks very much. More embarrassing is the amount of time I've spent staring at it trying to find my mistake!! :)
Re: search and replace confusion
by reneeb (Chaplain) on Nov 08, 2006 at 11:56 UTC
    You're searching for <!--monthstart, but in $copyindex there is just a <!-monthstart