package gadget; use vars qw($VERSION $CLASS); $CLASS = __PACKAGE__; $VERSION = "0.01"; #Generic method, it can (in theory ;-) return an instance of any subclass sub new { #do initialization stuff } sub parse_tag { my ($twig,$elem) = @_; #do stuff } #### package test; use gadget; use vars qw($VERSION $CLASS); $CLASS = __PACKAGE__; $VERSION = "0.01"; BEGIN { @test::ISA = qw(gadget); @test::ISA = qw(Exporter); @test::EXPORT = qw(parse_tag); } sub new { my $class = shift || $CLASS; my $obj = $class->SUPER::new($class); $obj->{test_attr} = "atributo de prueba"; return($obj); } sub test_stuff { my $self = shift; foreach my $a (@_){ print "($self) ARGUMENTO: $a\n"; } } #### require "test.pm"; $twigroots->{test} = \&{test::parse_tag};