Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Overloading Perl's Built-In's

by danger (Priest)
on Jan 12, 2001 at 13:50 UTC ( #51332=note: print w/replies, xml ) Need Help??


in reply to Overloading Perl's Built-In's

Not all built-in functions may be overridden, and chomp() is one of the ones that can't be overridden. Even if it were, you're new versions of chomp() wouldn't have worked as you expected because you only operating on a copy of the argument rather than the argument itself.

Only functions with 'weak' keywords may be overridden -- those are the ones defined to return a negative value in toke.c in the perl source code. Here is a list of + keywords, which includes all the functions that may *not* be overridden (since it is a shorter list):

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

Replies are listed 'Best First'.
Non-Overloadable Perl Functions
by bbfu (Curate) on Jan 12, 2001 at 14:05 UTC

    Even if it were, you're new versions of chomp() wouldn't have worked as you expected because you only operating on a copy of the argument rather than the argument itself.

    Actually, that was the point of the new chomp(). Stems from this discussion in this thread. Though, of course, I was using the function kind-of incorrectly, since it would've not worked if the function had been overloaded. But I was looking for the extra "\n" before the '$' at the end (hrm, I just realized my "expected output" is wrong! :).

    Anyway, thanks bunches for explaining about the 'weak' keywords and return values in toke.c! I'll have to take a look at that file when I get the chance.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://51332]
help
Chatterbox?
and the fire pops...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (10)
As of 2018-06-25 14:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?



    Results (127 votes). Check out past polls.

    Notices?