$self->debug_level( 4 ); print "Original: ", \$self->debug_level, " Value: ", $self->debug_level, "\n"; my $obj = Something->new( { 'debug_level' => \$self->debug_level, } ); print "Reference: ", $obj->debug_level, " Value: ", ${$obj->debug_level}, "\n"; $self->debug_level( 0 ); print "After change:\n"; print "Original: ", \$self->debug_level, " Value: ", $self->debug_level, "\n"; print "Reference: ", $obj->debug_level, " Value: ", ${$obj->debug_level}, "\n";