Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: regular expressions with !

by explorer (Chaplain)
on Sep 14, 2006 at 14:32 UTC ( #572931=note: print w/replies, xml ) Need Help??

in reply to regular expressions with !

If you want "no match", use it:

if ( $test_string !~ /$regex/) {
unless ( $test_string =~ /$regex/) {

Replies are listed 'Best First'.
Re^2: regular expressions with !
by ysth (Canon) on Sep 14, 2006 at 14:49 UTC
    Or even unless ( ! ( $test_string !~ /$regex/ ) ) {. Once you've taken the first step down the unless road, madness ensues. Don't use unless; it makes it too easy to misunderstand code.

      Don't use unless; it makes it too easy to misunderstand code.

      I dislike overgeneralizations like this, personally. The following code is perfectly clear:

      do_something() unless $big_honkin_error;

      I'm not saying that you can't avoid unless and make the code still clear, of course:

      do_something() if not $big_honkin_error:

      but the unless version is just fine.

      I wouldn't use unless at the beginning of a condition, however. But that's related to putting the important parts at the beginning of the statement as per perlstyle recommendations. Specifically:

      Just because you *CAN* do something a particular way doesn't mean that you *SHOULD* do it that way. Perl is designed to give you several ways to do anything, so consider picking the most readable one. For instance

      PrivoxyWindowOpen(FOO,$foo) || die "Can't open $foo: $!";

      is better than

      die "Can't open $foo: $!" unless open(FOO,$foo);

      because the second way hides the main point of the statement in a modifier.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2022-12-07 16:41 GMT
Find Nodes?
    Voting Booth?

    No recent polls found