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.