use Data::Dumper; use vars qw(%my_package::my_hash); sub my_special_require ($) { my $pkg = shift; require $pkg; # alias %my_package::my_hash to %main::my_hash (aka %my_hash) *my_hash = \%my_package::my_hash; } my_special_require "dir_one/my_package.pm"; print Dumper(\%my_hash); my_special_require "dir_two/my_package.pm"; print Dumper(\%my_hash);