You know how one sends e-mail, and then realises immediately afterwards the error or omission: On Fri, Sep 02, 2011 at 07:40:14PM +0100, Nicholas Clark wrote: > http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/9509/msg00666.html : The main win at this point is that we can say : : sub AAA () { 1; } : sub BBB () { 2; } : : and the user can say AAA + BBB and get 3. : : I'm not quite sure how this interacts with autoloading though. I fear : POSIX.pm will need to say : : sub E2BIG (); : sub EACCES (); : sub EAGAIN (); : sub EBADF (); : sub EBUSY (); : ... : sub _SC_STREAM_MAX (); : sub _SC_TZNAME_MAX (); : sub _SC_VERSION (); : : unless we can figure out how to efficiently declare a default prototype : at import time. Meaning, not using eval. Currently : : *foo = \&bar; : : (the ordinary import mechanism) implicitly stubs &bar with no prototype if : &bar is not yet declared. It's almost like you want an AUTOPROTO to : go with your AUTOLOAD. : : Another thing to rub one's 5 o'clock shadow over is that there's no way : to apply a prototype to a method call at compile time. : : And no, I don't want to have the : : sub howabout ($formal, @arguments) { ... } : : argument right now. : : Larry So, Larry does mention POSIX in it, but not for the reason we are discussing here. And it took another 10 years to find a solution to the problem with prototypes on constants in POSIX (and all the other modules) Nicholas ClarkThread Previous | Thread Next