in reply to if contains

I suspect your difficulty is in not escaping the '$', which has special meaning:

if ($value =~ /\$/) { # ... }

After Compline,
Zaxo

Replies are listed 'Best First'.
Re: Re: if contains
by Albannach (Monsignor) on Jul 05, 2003 at 14:29 UTC
    Actually while $ does usually have a special meaning, Perl seems to try to do the Right Thing:
    print 'aha' if('ab$de' =~ /$/);
    works (it does find the '$' character - actually it DOES NOT, see below). However,
    print 'aha' if('ab$de' =~ /b$/);
    is looking for a 'b' at the end of the string, and
    print 'aha' if('ab$de' =~ /$d/);
    is looking for the contents of $d anywhere in the string, which it does find as $d is empty.

    Personally I'd consider index for a simple string search like this one.


    Update: D'oh! Yes pfaut, that makes a LOT more sense. That should teach me something...

    print 'aha' if('' =~ /$/);
    prints 'aha' because even an empty string has an end...

    --
    I'd like to be able to assign to an luser

      Actually while $ does usually have a special meaning, Perl seems to try to do the Right Thing:
      print 'aha' if('ab$de' =~ /$/);

      print 'aha' if 'abcde' =~ /$/ also prints 'aha'. I do believe it's matching end of line, not the dollar sign.

      90% of every Perl application is already written.
      dragonchild