in reply to Probably an easy map question
my %h = do { local( @ARGV, $/ ) = ($file); <> =~ /^(.*?) = (.*)/gm }; [download]
The "$" is useless.
In the spirit of the OP, here's a (shorter!) variation that uses map:
my %h = do { local @ARGV = $file; map /^(.*?) = (.*)/, <> }; [download]
One should probably localize $^I when localizing @ARGV.