http://qs321.pair.com?node_id=720674

blazar has asked for the wisdom of the Perl Monks concerning the following question:

To put it as short as possible, this popped out in clpmisc while trying to help someone to override -e (which appears not to be possible) and I'm pasting hereafter the relevavant part of what I wrote there:


Actually, now that I think of it, I don't know if -X functions are overridable, and you made me discover something interesting: people generally check the prototype of CORE:: functions because if they are not ovverridable then it returns undef - but then please note that the inverse implication does not hold. (E.g. require returns undef() but I have seen it duly overridden.) Now, I tried to see what happens with -e() and it turns out that it gives a run-time error I had never seen:

whisky:~ [09:58:08]$ perl -E 'say prototype "CORE::$_" // "undef" > for qw/rand require -e/' ;$ undef Can't find an opnumber for "-e" at -e line 2.

Now, I don't even know if this is a proper SoPW since I understand that, to put it simply, "something strange happens with these strangely named functions, even if the docs say that they apart that detail they're not different from any other unary operator..." But I would like to know more about this error, anyway: was it to be expected, or can I check the prototype of those functions in some other way?

--
If you can't understand the incipit, then please check the IPB Campaign.