Paul and Paul, Thank you very much ! I heard that OO module usually doesn't export anything, but I just wanted the difference between use and use base. Now almost everything is clear for me !
Just one thing, this code seems to work. -------------------------------------------------------------- Animal.pm package Animal; use base qw(Exporter); our @EXPORT = qw(speak); sub speak { print "I speak!\n"; } 1; ---------------------------------------------------------------- farm.pl use Animal; speak; use base qw(Exporter) seems to work. This means use in farm.pl calls inherited import function using qualified name as Animal::import right ? (How can I check it ?) So in summary; - to use the module Exporter in your module, you use inheritance - to use the module that use Exporter, you should not use inheritance Acturelly, I want to know why we should write use base qw(Exporter); but should not write just use Exporter; If Exporter exports its import module, then we don't have to manipulate @ISA, right? If so, why Export doesn't do it? If exporting doen't fit OO inheritance, it seems to me weird that we had to use OO inheritance functionality to use Export module. Thank you very much in advance !