{ package a; our $foo = 1; } { package b; my $otherpkg = "a"; my $varname = "$otherpkg\::foo"; print ${ $varname }, "\n"; # can be simplified as: print $$varname, "\n"; # or the temp variable can be avoided: print ${ "$otherpkg\::foo" }, "\n"; } #### use strict; { package a; my $foo = 1; sub foo { $foo } } { package b; my $otherpkg = "a"; print $otherpkg->foo, "\n"; }