package My::This; sub new { bless {} } sub thing { print 'This' } package My::That; sub new { bless {} } sub thing { print 'That' } package main; my $This = My::This->new(); my $That = My::That->new(); $This->thing; # prints This $That->thing; # prints That