in reply to Complex Mapping

This is what hashes are for. Your parser can be built to 'not care' about the order of the information it gets. All it has to do is put the 'TITLE' information in the 'TITLE' place, i.e. %things{'TITLE'} = $result_of_parsing_title_information; When you finish parsing, the hash now has everything you've gathered, avaiable in whatever order you wish.

--hsm

"Never try to teach a pig to sing...it wastes your time and it annoys the pig."