package Server; ... sub new { ... $self = {kiosk=>undef}; ... return $self; } sub kiosk { my $self = shift; my $m = shift; if( defined $m ){ die unless $self->_set_kiosk($m); } return $self->{kiosk} } # returns 0 on failure, 1 on success sub _set_kiosk { my $self = shift; my $akiosk = shift; if( ! $akiosk->connected() ){ return 0 } $self->{kiosk_id} = $akiosk->id(); print "setting the kiosk to this: " . $akiosk. "\n"; return 1; } sub do_transaction { my $self = shift; return 0 unless defined $self->{kiosk}; ... }