#!/usr/bin/perl package A; use warnings; use strict; sub new { my $object = shift; my $class = ref($object)||$object; my $self = {}; bless($self,$class); return $self; } sub DESTROY { print("DESTROY in A","\n"); } sub hello { print("hello in A\n"); } return 1; #### #!/usr/bin/perl package B; use warnings; use strict; use A; our @ISA=qw(A); sub new { my $object = shift; my $class = ref($object)||$object; my $self = $class->SUPER::new(); bless($self,$class); return $self; } sub DESTROY { print("DESTROY in B","\n"); } sub hello { my $self = shift; $self->SUPER::hello(); print("hello in B\n"); } return 1; #### #!/usr/bin/perl use warnings; use strict; use FindBin; use lib "$FindBin::Bin/class"; use B; my $b = new B(); $b->hello(); #### hello in A hello in B DESTROY in B