Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Overloading Perl's Built-In's

by danger (Priest)
on Jan 12, 2001 at 13:50 UTC ( [id://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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://51332]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2024-04-25 09:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found