package MyClass;
use strict;
sub new($)
{
my $invocant = shift;
my $class = ref($invocant) || $invocant; # object or class name
my $self = { };
bless($self, $class);
return $self;
}
sub HelloWorld($)
{
my $self = shift;
print "Hello, World!\n";
}
1;
####
use MyClass;
use strict;
my $pack = MyClass->new();
my $string = "HelloWorld";
$string = ref($pack) . "::$string";
no strict 'refs';
&$string($pack);
####
package MySubClass;
use strict;
our @ISA = qw(MyClass);
require MyClass;
# All implementation is done by the superclass
1;
####
use MySubClass;
use strict;
my $pack = MySubClass->new();
my $string = "HelloWorld";
$string = ref($pack) . "::$string";
no strict 'refs';
&$string($pack);