package Nonsense::InsideOut; use strict; use warnings; use Class::Std::Utils; { my %name_of = (); sub new { my ($class) = shift; my $self = bless \do{my $anon_scalar}, $class; return $self; } sub get_name { my ($self) = shift; return $name_of{ident $self}; } sub set_name { my ($self) = shift; my ($name) = shift; $name_of{ident $self} = $name; } } 1;