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.