package Duck::Secret; use Class::InsideOut qw( private id register ); private secret => my %SECRET; sub new { my $self = register( bless \(my $s), shift ); $SECRET{ id $self } = int( rand(100) ); return $self; } sub guess_secret { my ($self, $guess) = @_; return $guess == $SECRET{ id $self }; }