My experience has been that most of the time, I would be given a document that specified the format in a "name length" or "name length start end" style, and I would cut and paste the document into Vim, do a couple of transformations, and have my module-ready format, which is why the format in the existing modules has worked for me 99% of the time. I can see the usefulness of your method, though, and it would be easy enough to preprocess your format into a something suitable for one of the modules, or just generate a pack/unpack format string (the only problem with your first idea that I can see is with fields that have names longer than their lengths).