in reply to No matching

The parens spoil your match. See quotemeta.

my $prefixSysDescr = quotemeta 'system.sysDescr.0 : DISPLAY STRING- +(ascii):'; my $sysDescr = 'system.sysDescr.0 : DISPLAY STRING- (ascii): fub +ar'; $sysDescr =~ s/$prefixSysDescr//; print $sysDescr,$/; __END__ fubar

Alternatively, do

$sysDescr =~ s/\Q$prefixSysDescr\E//;

Replies are listed 'Best First'.
Re^2: No matching
by o_chfa (Acolyte) on Sep 03, 2009 at 08:58 UTC

    This is a very valuable hint. I take care for this in future. \Q with \E didn't worked.

      \Q\E is quotemeta, you must have done it wrong

        The code is as following:

        36 my $prefixSysDescr = quotemeta 'system.sysDescr.0 : DISPLAY + STRING- (ascii): '; ...... 53 for ( $sysDescr ) { 54 /\Q$prefixSysDescr\E/ && do { 55 $sysDescr =~ s/$prefixSysDescr//; 56 print $sysDescr, "\n"; 57 Pause(__LINE__); 58 s/^$prefixSysDescr//g; 59 last; 60 }; 61 /^$prefixSnmpWalk/ && do { 62 Pause(__LINE__); 63 $sysDescr =~ s/^$prefixSysDescr//g; 64 last; 65 }; 66 # $sysDescr = $sysDescr . " " . $sysDescr; 67 } 68 print $sysDescr; 69 Pause(__LINE__); ...

        The script runs straight to line 68. If I omit \Q and \E it matches