Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: regular expression inverse match NOT match?

by ww (Bishop)
on Sep 25, 2013 at 02:39 UTC ( #1055598=note: print w/ replies, xml ) Need Help??


in reply to regular expression inverse match NOT match?

There's really not much wrong with your sample code, if I understand your intent correctly:

perl -E "my $string = 'abc efg hijk lmnop'; if($string !=~ m/defg/) {s +ay $string;}" abc efg hijk lmnop

If it does the job without side-effects, it's probably correct!

But is there some reason you couldn't have answered this yourself... or at least satisfied yourself that your code does or does not work?

Update on my oops: TY, Athanasius who pointed out my typo and, implicitly, that -E does not invoke warnings, whose use would have also pointed out my mistook. With a

use warnings;<c> added to the one-liner this is evident:</p> <c>!=~ should be !~ at -e line 1. Use of uninitialized value $_ in pattern match (m//) at -e line 1. Argument "abc efg hijk lmnop" isn't numeric in numeric ne (!=) at -e l +ine 1.

With the correction, and a more generous example of strings, however, IJW:

C:\>perl -E "use warnings; my @strings = ('12345 defg', 'abc efg hijk +lmnop', 'xyz defg abc'); for my $string(@strings) { if($string !~ m/d +efg/) {say $string;}}" abc efg hijk lmnop

Which just goes to say, OP had the "not much wrong" idea.


Comment on Re: regular expression inverse match NOT match?
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1055598]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (13)
As of 2014-12-19 18:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (91 votes), past polls