Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Alias builtins?

by m.att (Pilgrim)
on Feb 15, 2005 at 22:40 UTC ( [id://431367]=perlquestion: print w/replies, xml ) Need Help??

m.att has asked for the wisdom of the Perl Monks concerning the following question:

Is there any way to alias builtins in the same spirit as you would alias a sub/variable?

*foo = *bar;

IE: *readlines = *readline;

Possibly some CORE:: magic?

Am I missing the forest for the trees?

Replies are listed 'Best First'.
Re: Alias builtins?
by Tanktalus (Canon) on Feb 16, 2005 at 01:13 UTC

    After playing with too many permutations to put in here... the closest I came up with is:

    perl -e 'sub foo { CORE::log(shift) }; print foo(123),$/;'
    In other words, you need to create &readlines as a sub around CORE::readline. Note a few things:
    1. The built-ins have proper prototyping. If you pass in @_ when it's expecting a scalar (such as CORE::log above), you're going to be getting funny results (I kept getting 0 ... because log(1) == 0). I had to change it from CORE::log(@_) to CORE::log(shift) to get it to work. Of course, CORE::log($_[0]) would work as well.
    2. It's not quite the same thing as aliasing. We're not mapping $foo to $CORE::log, or %foo to %CORE::log or anything like that.
    3. It's probably not as fast ... but it may be close enough.
    Hope that helps.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (8)
As of 2024-04-19 08:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found