my $headers = do { local $/ = ''; scalar <$fh>; }; my %header = map { map { join ' ', split; } split /: /, $_, 2; } split /\r?\n\r?/, $headers;