use strict;
use warnings;
package PACKAGEA::PACKAGEB;
our @test = qw(a b c);
our $test = 'def';
our %tset = ('foo' => 'bar');
*PI = \'3.14';
our $PI;
print(@test, $/);
print($test, $/);
print(%tset, $/);
print($PI, $/);
package main;
####
my $src_pkg_name = 'PACKAGEA::PACKAGEB';
my $dst_pkg_name = __PACKAGE__;
{
no strict 'refs';
foreach (keys(%$src_pkg_name)) {
my $sym_name = $_;
my $src_sym_ref = "$src_pkg_name::$sym_name";
my $dst_sym_ref = "$dst_pkg_name::$sym_name";
my $ref;
$ref = *$src_sym_ref{SCALAR}; *$dst_sym_ref = $ref if $ref;
$ref = *$src_sym_ref{ARRAY }; *$dst_sym_ref = $ref if $ref;
$ref = *$src_sym_ref{HASH }; *$dst_sym_ref = $ref if $ref;
$ref = *$src_sym_ref{CODE }; *$dst_sym_ref = $ref if $ref;
}
}
##
##
print(@test, $/);
print($test, $/);
print(%tset, $/);
print($PI, $/);