in reply to packages and Exporter

I would have written it thusly. base is a core pragma intended for fiddling with requiring and altering @ISA. I didn't say `our @EXPORT` because that immediately limits my code to 5.6.0>= while using vars (another pragma) to declare is backwards compatible.

package ObjectTemplate; use base 'Exporter'; use vars qw(@EXPORT); @EXPORT = qw( attributes );