#!/usr/bin/perl use strict; my $obj = blah->new(); sub A() { print( $obj->getName . " , " . $obj->{address} . "\n" ); } sub B() { print( $obj->getName . " , " . $obj->{address} . "\n" ); } A; B; package blah; use strict; sub new() { my $classname=shift; my $self=bless{}; $self->{name} = "Sam"; $self->{address} = "123 Main st"; return $self; } sub getName() { my $self=shift; if ($self->{name}) { return $self->{name}; } else { #Init name and return value... } } 1;