I'm hazarding an educated guess that
$AUTOLOAD 'magically appears' at run-time. So when perl is compiling your code, it doesn't know where
$AUTOLOAD is coming from and moans appropriately. This is why you have to declare it before hand so as to not make perl worry unnecessarily.
HTH
_________
broquaint