# So, how to get $Foo::Str without soft ref?
####
use strict;
package Foo;
use vars qw($str); # $Foo::str created
$str = 'foo str';
package main;
my $pack = "Foo::";
my $var = "str";
print ${*{${$main::{$pack}}{$var}}{SCALAR}};
__END__
foo str
####
use strict;
$Foo::str = 'foo str';
my $class = 'Foo';
my $value = eval "\$$class\::str";
print $value,$/;
####
package Foo;
use vars qw($str);
$str = "foo str";
package main;
my $pack = "Foo::";
my $var = "str";
print "$_: ",(defined ${$main::{$pack}}{$_} ? 'yup' : 'nope'),$/
for qw(str bar);
__END__
str: yup
bar: nope
####
$\=$/;
use strict;
use warnings;
package Foo;
use vars qw($str);
$str = "foo str";
package main;
my $pack = "Bar::";
my $var = "str";
print "yup" if defined ${$main::{$pack}}{$var};
/::$/ and print for keys %main::
__END__
version::
Tie::
utf8::
re::
CORE::
DynaLoader::
mro::
strict::
attributes::
Bar:: <----here
Regexp::
vars::
UNIVERSAL::
Foo::
main::
Carp::
PerlIO::
IO::
Internals::
warnings::
DB::