http://www.perlmonks.org?node_id=572935


in reply to Re: regular expressions with !
in thread regular expressions with !

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.

Replies are listed 'Best First'.
Re^3: regular expressions with !
by Nkuvu (Priest) on Sep 14, 2006 at 18:46 UTC

    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.