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

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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1055598]
[Corion]: choroba: Yeah - that's why the "old" airports of Berlin were cool, as they'd been built before ;)

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2017-02-23 12:28 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (346 votes). Check out past polls.