in reply to Re: Re: Unpacking fixed length records
in thread Unpacking fixed length records

You could separate the parts of the unpack format, making sure to manually consume each part as you go along. It's more work than should be necessary of course - unpack should tell us where it failed, but alas, it doesn't. So you could repeatedly call something like
my @list = eval { unpack "x$skip $format", $data }; { die "$@" || last }
making sure that $skip contains the correct value between calls.

Makeshifts last the longest.