use v5.10; use strict; use warnings; { package Local::Class; sub new { my $class = shift; my %self = @_; bless \%self => $class; } sub foo { my $self = shift; return $self->{foo}; } } my $object = Local::Class->new(foo => 42); say $object->foo; my $foo = Local::Class->foo;