sub test { my($pkg) = caller; print "I've been called from package $pkg\n"; } package Foo; main::test(); __END__ I've been called from package Foo #### $Foo::x # scalar @Foo::y # array %Foo::z # hash $Foo:z{bar} # hash item # etc. #### my $pkg = "Foo"; my $var = "x"; $Foo::x = 123; { no strict 'refs'; print ${$pkg . '::' . $var}; } __END__ prints: "123";
## $Foo::x # scalar @Foo::y # array %Foo::z # hash $Foo:z{bar} # hash item # etc. ##
## my $pkg = "Foo"; my $var = "x"; $Foo::x = 123; { no strict 'refs'; print ${$pkg . '::' . $var}; } __END__ prints: "123";