I'm not sure if perl on VMS supports the 'q' format to pack/unpack 64-bit values. If it does, you should be able to use this template: 'q s12'. That means one quadword (64 bits) followed by 12 shorts (16 bits each). The time will be in $field[0] and the rest of the values in successive elements.
If VMS perl doesn't support the 'q' format, you'll have to read it out as two longs (32 bits each). That template would be 'i2 s12'. The time field from your record will occupy $field[0] and $field[1] with the rest of the fields following in order.
See Pack/Unpack Tutorial (aka How the System Stores Data) for more information on how pack and unpack work.
--- print map { my ($m)=1<<hex($_)&11?' ':''; $m.=substr('AHJPacehklnorstu',hex($_),1) } split //,'2fde0abe76c36c914586c';
In reply to Re: Unpack for VMS binary files
by pfaut
in thread Unpack for VMS binary files
by maderman
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |