in reply to Possible to get coderef of CORE::print to alias it?
Nope!
DB<128> $CORE::{substr} => *CORE::substr DB<129> $CORE::{print} => undef
It's not really as a "function" in CORE namespace, to rule out overriding.
prototype FUNCTION Returns the prototype of a function as a string (or "un +def" if the function has no prototype). FUNCTION is a referenc +e to, or the name of, the function whose prototype you want to r +etrieve. If FUNCTION is a string starting with "CORE::", the res +t is taken as a name for Perl builtin. If the builtin is no +t overridable (such as "qw//") or if its arguments cannot + be adequately expressed by a prototype (such as "system"), prototype() returns "undef", because the builtin does n +ot really behave like a Perl function. Otherwise, the str +ing describing the equivalent prototype is returned.
DB<131> prototype 'CORE::print' => undef DB<132> prototype 'CORE::substr' => "\$\$;\$\$"
Nevertheless can it be called.
DB<133> CORE::print("bla") bla
> I know print is a very special function...
Thats the point, print is magic about indirect object syntax:
eg print STDERR "Fatal!"
This behavior can't be mimiced with normal prototypes, so no STASH entry.
Cheers Rolf
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Possible to get coderef of CORE::print to alias it?
by Yary (Pilgrim) on Feb 19, 2013 at 00:47 UTC |