I suspect that the OP is unmarshalling
Marshalling a hash from a file. Appending a package name would seem to defeat the idea. A typeglob assignment allows both packages to share the variable name.
use strict;
use warnings;
BEGIN{
push @ARGV, \'$hash{key}{key}{key} = "value"' if (!@ARGV);
}
our %hash;
my $file_name = $ARGV[0];
Some::Module::some_sub($file_name);
print $hash{key}{key}{key}, "\n";
package Some::Module;
sub some_sub{
our %hash;
*hash = *main::hash;
my $fname = shift;
open my $fh, '<', $fname or die "cannot open input";
my $string = <$fh>;
eval $string;
my $debug = 'foo'; # Just a place for debug to stop.
}