In the way it is written, your solution suffers from the same problems as BrowserUK's solution: The order of the fields gets lost by using a hashref as the spec-argument to Unpack::Format::new.
-- Hofmator
Comment on Re^2: Clarity in parsing fixed length data.