In order to avoid potential mismatches of the field name and pack template values, I would think about using a hash to generate both the unpack template and the field names. The only problem is hashes are not stored in any particular order. To combat this, one could store the "hash" in an array, and separate the keys and values "manually." Example:
my @fields = qw(Year A2
Month A2
Day A2
Request_Seq A4
Request_Type A2
Record_Seq A2
Record_Data A1486);
my @keys = map $fields[$_], grep $_%2==0, 0 .. $#fields;
my @values = map $fields[$_], grep $_%2==1, 0 .. $#fields;
my %data; # bad name. we should know better. ;)
@data{ @keys } = unpack join("", @values), $foo;
Alternatives to this include, but are not limited to:
- Use a tied hash that maintains order, such as Tie::IxHash.
- Use a normal hash, but also keep along an array that is used to sort the hash keys and values. This is essentially what a tied hash would do for you, automatically.
- Some other extremely clever solution I have not thought of.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.