my $TEMPID; my %TEMPS; package My::Class::Temps; sub lookup ($) { $TEMPS{+shift} } sub new { my $self = {}; $TEMPS{ self->{ID} = ++$TEMPID } = $self; $self; }