package My::Class; use Class::InsideOut qw( property register id ); # declare a lexical property hash with 'my' property my %name; sub new { my $class = shift; my $self = \do {my $scalar}; bless $self, $class; # register the object for thread-safety register( $self ); } sub get_name { my $self = shift; # optional 'id' as alias to Scalar::Util::refaddr return $name{ id $self }; } 1; # modules must be true