Если создать класс, унаследованный от двух других, то будет не слишком очевидно, от какого класса окажется унаследованным метод import.
Простой пример. Имеется два модуля BaseA и BaseB, содержащие только метод import.
package BaseA; sub import { print "Base A\n"; } 1; package BaseB; sub import { print "Base B\n"; } 1;
Модуль Derived содержит лишь инструкции, указывающие эти два класса как базовые:
package Derived; use base BaseA; use base BaseB; 1;
Что произойдет, если в программе используется модуль Derived, и вызван метод import?
use Derived; Derived->import();
На печать дважды выводится строка Base A (первый раз при подключении, второй — при явном вызове import).
А вот если поменять порядок наследования внутри Derived:
package Derived; use base BaseB; use base BaseA; 1;
то на печать дважды выводится Base B.