package Foo; sub new { my ($class, $id) = @_; my $self = { id => $id }; return bless $self, $class; } sub method { my ($self) = @_; ... if (...something went wrong...) { warn("$self->{id} rotted into a pile of mush\n"); } ... } #### use Foo; my $one = Foo->new('one'); my $second = Foo->new('two');