I got my example to work with the following code:
say unpack '(C.*/X/xa@1)3', "\003\003\003abcdef"; # prints 'aaa'
say unpack '(C.*/X/xa@1)3', "\005\004\003abcdef"; # prints 'cba'
Thank you Loops
for your help.
I am trying to get a better understanding of Perl's pack/unpack function.
I have a pretty good grasp of the "standard" templates, but I simply cannot get my head around the "@" and "." templates.
Does anyone know of (or have) any tutorials/examples that delve more in depth with the "@" and "." templates? perldoc pack and perlpacktut have the briefest mention of "@" and (to my eyes) no mention of ".".
A more concrete example:
After playing around with pack and the "/" modifier, I came up with the following:
say unpack '(C/xa@)3', "\003\003\003abcdef"; # prints 'bcd'
say unpack '(C/xa@)3', "\005\004\003abcdef"; # prints 'ddd'
1. I understand what C/xa
is doing, but what does @
do in this case?
2. How would I make the template skip from the absolute start of the string, rather than from a relative position?
say unpack '(C/xa@)3', "\003\003\003abcdef"; # prints 'bcd' - would li
say unpack '(C/xa@)3', "\005\004\003abcdef"; # prints 'ddd' - would li
Thank you for your time.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
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:
Outside of code tags, you may need to use entities for some characters:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||