package My::This; sub thing { print 'This' } package My::That; sub thing { print 'That' } package main; &My::This::thing; # prints This &My::That::thing; # prints That #### 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