in reply to Parsing to a hash suggestions
Also consider Parse::RecDescent as a general-purpose parsing solution (albeit complicated) that is good for most things.