in reply to Redispatching AUTOLOAD for failure

I'd think the usual way to handle that would be to die or croak to say the method does not exist. Is there something wrong with that?

I think this won't do what you intend it to do:

(my $meth = our $AUTOLOAD) =~ s/([^:]+)$/$1/;

Since you replace exactly what you match with what you match, $meth will just equal $AUTOLOAD.

As an aside, if you're writing an AUTOLOAD(), it might be wise to write a can() method to go with it too, if you haven't done that already.