#!/usr/bin/perl use strict; use lib '.'; use Bar; ### Before and after snapshots. print 'var before setting: (' . $Bar::package_variable . ")\n"; $Bar::package_variable = 'Ogopogo'; print 'var after setting: (' . $Bar::package_variable . ")\n"; ### From an object. my $obj = new Bar( ); print 'var from obj--unqualified: (' . $obj->{'unqualified'} . ")\n"; print 'var from obj--qualified: (' . $obj->{'qualified'} . ")\n"; print "\nAddresses:\n"; print '$Bar::package_variable '.\$Bar::package_variable."\n"; print '$obj->{"unqualified_ref"} '.\${$obj->{'unqualified_ref'}}."\n"; print '$obj->{"qualified_ref"} '.\${$obj->{'qualified_ref'}}."\n"; exit; #### package Bar; our $package_var; sub new { my $class = shift; my $self = {}; bless $self, $class; $self->{'unqualified'} = $package_var; $self->{'qualified'} = $Bar::package_var; $self->{'unqualified_ref'} = \$package_var; $self->{'qualified_ref'} = \$Bar::package_var; return $self; } 1; #### Package var before setting: () Package var after setting: (Ogopogo) Package var from obj--unqualified: () Package var from obj--qualified: () Addresses: $Bar::package_variable SCALAR(0x815363c) $obj->{"unqualified_ref"} SCALAR(0x8188950) $obj->{"qualified_ref"} SCALAR(0x8188950)