in reply to Confused by use base, I think.
What do you get when you do warn(ref($self)."\n"); right before the line that gives the error?
And what's the output of the debugging code you have there but commented out?