AUTOLOAD does not only create subs, but is used to decide on which sub to call. So, you can either call an existing sub, or create one and then call it. to avoid confusion with caller() and stuff, usually goto is used instead of a simple call. But in your code, there is neither a call nor a goto in AUTOLOAD().
I think I saw a tutorial here somewhere, but the last time I was here was about 2.5 years ago, so there.
My public key