Quote
-2, -1, 0, and undef should all be false values for the unless check, which makes the > 0 bit a bit redundant...
Hmmmm ... but aren't -2 and -1 interpreted as "true" in Perl?

I thought that the only expressions interpreted as false were undef, 0, "0", "" (empty string) and () (empty list).