This doesn't look right. Perl's dispatcher will search through the entire @INC plus UNIVERSAL for the method. If it can't find it, it repeats the search from the beginning for AUTOLOAD. So if the first parent defines AUTOLOAD and the second parent defines sub foo {}, the second parent's foo {} is called before the first parent's AUTOLOAD.