in reply to Possible to get coderef of CORE::print to alias it?

> is it possible to alias to 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
    Thanks, knew I'd seen that somewhere, forgot about "prototype".