use strict 'vars';
BEGIN { *main::foo = \@main::foo }
print "Foo: (@foo)\n";
__OUTPUT__
Variable "@foo" is not imported at foo.pl line 10.
Global symbol "@foo" requires explicit package name at foo.pl line 10.
foo.pl had compilation errors.
####
use strict 'vars';
package somePkg;
BEGIN { *main::foo = \@main::foo }
package main;
print "Foo: (@foo)\n";
##
##
use strict 'vars';
# We're already in package main
BEGIN { *pkg::foo = \@pkg::foo }
package pkg;
print "Foo: (@foo)\n";
##
##
use strict 'vars';
package pkg;
BEGIN { *pkg::foo = \@pkg::foo }
print "Foo: (@foo)\n";
##
##
package pkg;
sub BEGIN {
*foo = \@foo;
}
##
##
use strict 'vars';
BEGIN { package pkg; *main::foo = \@main::foo }
print "Foo: (@foo)\n";
__OUTPUT__
Foo: ()