package Foo; sub new{ return bless{},shift } sub whois{ print __PACKAGE__ } package Bar; sub new{ return bless{},shift } sub whois{ print __PACKAGE__ } package Boo; sub new{ return bless{},shift } sub whois{ print __PACKAGE__ } package main; use base qw(Bar Boo Foo); use strict; use warnings; my $m = main->new; $m->whois;