in reply to packages and Exporter

1) The scope of a package declaration lasts until the end of the current lexical scope. A file is implicitly a lexical scope.

2) Full qualification is not needed, those variables will be of the current package anyway. The our declaration is often used these days for declaring such package variables under strict.

3) To use a module both loads it and calls its import routine. We do need to import anything from Exporter (and it doesn't export anything anyway) so we just require it and set @ISA so that we may access its import routine via inheritance.