in reply to Reading into a hash from regex

Maybe with a LISP style
BEGIN{ open IN, $myfile or die "can't open $!"; local $/; $char{ ( /Character=(.*)/ )[0] } = $hex{ ( /Hexidecimal=(.*)/ )[0] + } = { map{ /(.*?)=(.*)/ } split /\n/ } for split /\n-+\n/, <IN>; }