in reply to Trying to access hash from external perl file

Firstly I'm assuming your example File_a.pl hash contains a typo, and the real file uses rounded parentheses, not curly braces (curly braces are for hashrefs).

Now, if your File_a.pl really does just consist of a single hash definition and no other code, then it's quite simple...

my %test_hash = do 'File_a.pl'; foreach (keys %test_hash) { print "$test_hash{$_}\n"; }

If there's other stuff in File_a.pl, then it becomes a bit harder. You'd need to slurp the contents of File_a.pl into a variable, strip that other stuff out of the variable, probably using regular expressions, then eval it.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'