in reply to Re: use directives
in thread use directives

@ISA is only related to OO inheritance. You have its relationship with Exporter reversed: @ISA/inheritance does not depend on Exporter, Exporter uses inheritance ("MyModule is-a Exporter"). Most OO Perl modules do not use Exporter at all, since there's rarely a reason to export symbols into someone else's namespace if they're going to be using an OO interface to talk to you.

Also, you can do (single) inheritance without (directly) messing with @ISA, thanks to use base. use base 'Exporter'; is equivalent to use Exporter; our @ISA = qw(Exporter);.

Finally, I just noticed as I was finishing up that last sentence that you're declaring the variables in your example with both use vars and our. One or the other is sufficient, you don't need to do both. (Which of the two is preferred is a matter of taste, but they're functionally equivalent.)