my ($inf, @dat) = unpack 'a4 (L (S/(xx) XX.@2/a XX.x4/a xx))<*', do { local $/; }; while (@dat) { my ($ID, $s1, $s2) = splice(@dat, 0, 3); }