Before copying symbol table: $VAR1 = { 'xxx' => *Test::xxx, 'yyy' => *Test::yyy }; $VAR1 = { 'myprint' => *Test2::myprint, 'aaa' => *Test2::aaa, 'zzz' => *Test2::zzz }; Test2, Test2:aaa After copying symbol table: $VAR1 = { 'xxx' => *Test::xxx, 'yyy' => *Test::yyy }; $VAR1 = { 'xxx' => *Test::xxx, 'yyy' => *Test::yyy }; After assigning to $Test::aaa: $VAR1 = { 'xxx' => *Test::xxx, 'yyy' => *Test::yyy }; $VAR1 = { 'xxx' => *Test::xxx, 'yyy' => *Test::yyy }; $Test2::aaa = 50 xxx yyy Test2, Test2:aaa %main::: $VAR1 = { '/' => *{'::/'}, 'stderr' => *::stderr, 'SIG' => *::SIG, 'utf8::' => *{'::utf8::'}, '1' => *{'::1'}, '"' => *{'::"'}, 'ARNING_BITS' => *{'::ARNING_BITS'}, 'CORE::' => *{'::CORE::'}, 'DynaLoader::' => *{'::DynaLoader::'}, '_ *{'::_ *::stdout, 'attributes::' => *{'::attributes::'}, '' => *{'::'}, 'stdin' => *::stdin, '_ *{'::_ *::ARGV, 'INC' => *::INC, 'Scalar::' => *{'::Scalar::'}, 'ENV' => *::ENV, 'Regexp::' => *{'::Regexp::'}, 'Test::' => *{'::Test::'}, 'XSLoader::' => *{'::XSLoader::'}, 'UNIVERSAL::' => *{'::UNIVERSAL::'}, 'overload::' => *{'::overload::'}, '$' => *{'::$'}, '_ *{'::_ *{'::B::'}, 'Test2:aaa' => *{'::Test2:aaa'}, 'x' => *::x, 'main::' => *{'::main::'}, 'Carp::' => *{'::Carp::'}, 'Data::' => *{'::Data::'}, '-' => *{'::-'}, '_ *{'::_ *{'::PerlIO::'}, '_ *{'::_ *{'::0'}, 'BEGIN' => *::BEGIN, ' => *{':'}, '@' => *{'::@'}, '_ *{'::_ *{'::Test2::'}, '!' => *{'::!'}, 'STDOUT' => *::STDOUT, 'IO::' => *{'::IO::'}, '' => *{'::'}, '' => *{'::'}, '_' => *::_, '+' => *{'::+'}, 'Dumper' => *::Dumper, 'Exporter::' => *{'::Exporter::'}, '_ *{'::_ *{'::bytes::'}, 'STDERR' => *::STDERR, 'Internals::' => *{'::Internals::'}, 'STDIN' => *::STDIN, 'warnings::' => *{'::warnings::'}, 'Config::' => *{'::Config::'}, 'DB::' => *{'::DB::'}, '::' => *{'::::'} }; myprint says: 50