my $self = {}; sub new { my $proto = shift; my $class = ref($proto) || $proto; bless $self, $class; return $self; } #### sub public_method { my ($self,$args) = @_; $self->{foo} = $args; _do_private_stuff(); } sub _do_private_stuff { print $self->{foo}; } #### sub public_method { my ($self,$args) = @_; $self->{foo} = $args; $self->_do_private_stuff(); } sub _do_private_stuff { my $self = shift; print $self->{foo}; } #### //avert your eyes - Java code ahead class Ball { private Color color; public Ball(Color c) { this.color = c; } }