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


in reply to Perl oddities

First of all, I'd like open and opendir to have returned an open handle, or undef on failure, instead of changing a passed argument on the side. But Joost already mentioned that.

And second, I find it not just odd but also extremely annoying how the -X operators ignore parens as a hint for parsing precedence. Take this example:

print -M($0) + 1;
This yields:
Argument "test.pl" isn't numeric in addition (+) at test.pl line 2.
Use of uninitialized value in print at test.pl line 2.

Perl treats this the same as

print -M ($0 + 1);

Not exactly what I had in mind. You have to wrap the parens around both operator and argument, to make it behave like I want. Just like Applescript.

print +(-M $0)+1;