package X; use Data::Dumper; use File::Copy qw(copy); use Time::HiRes qw(usleep); 1; #### use warnings; use strict; use lib '.'; use X; BEGIN { no strict 'refs'; for (keys %X::){ my $symbol = "X::$_"; if (defined &{$symbol}){ print "importing '$symbol' sub into our namespace\n"; *$_ = \&{$symbol}; } } } print Dumper {a => 1}; usleep 500000; copy 'x.txt', 'y.txt' or die $!; #### importing 'X::copy' sub into our own namespace importing 'X::usleep' sub into our own namespace importing 'X::Dumper' sub into our own namespace $VAR1 = { 'a' => 1 }; No such file or directory at x.pl line 20.