Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: !Overriding Builtin print

by diotalevi (Canon)
on Oct 20, 2003 at 05:31 UTC ( [id://300477]=note: print w/replies, xml ) Need Help??


in reply to !Overriding Builtin print

Update: Please see Initial Devel::UncheckedOps, a macro for perl for notes on how print() can be overridden.


Its a function of toke.c's Perl_keywords() function. The keywords with positive values aren't overridable (so says pp.c's pp_prototype function). I get the impression from S_scan_inputsymbol that glob() and readline()'s overrideability is more a function of explicit support than something handled by the prototype. It also got the impression it might have something to do with print's status as an indirect object method expecting a list. Some guesses anyway.

Maybe this generalizes to: all functions overridable by CORE::GLOBAL:: have must prototypes or be explicitly supported by the perl parser (and the only known exceptions are glob() and readline()).

Added: For those that care, I pulled the list of keywords from toke.c:Perl_keywords() that are marked as not being overridable. You'll notice glob() and readmore() are in this list - again, it works only because of explicit support.

__DATA__ __END__ AUTOLOAD BEGIN CHECK DESTROY do delete defined END else eval elsif exists for format foreach grep goto glob INIT if last local m my map next no our pos print printf package prototype q qr qq qw qx redo return require s scalar sort split study sub tr tie tied use undef until untie unless while y

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://300477]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (2)
As of 2024-03-19 05:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found