Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
In general, no, it does not hold. For the example I extracted only the part that I had problems with. In real life there is more structure before and after the example structure. I also hoped to learn how flexible and concise the packing templates can be, but of course I need to digest the perlpacktut documentation now (which I did not knew existed). Thanks for good advice.

Edit: Here is a more general example with three arrays of different sized types. Now it is
  • byte: number of members in each of the following arrays
  • array of bytes
  • array of unsigned shorts
  • array of longs
  • I updated the script and added the one step solution (using the excellent explanation of Eily):

    use strict; use warnings; my $testinput = pack('C/a* a* a*', (pack 'C*', 1, 2), (pack 'v*', 3, 4), (pack 'l*', 5, 6)); print join(',', unpack('C/C* v2 l2', $testinput)), "\n"; # gives "1,2,3,4,5,6" which is ok, # but has the repeat factors for 'v' hardcoded my $repeat = unpack('C', $testinput); print join(',', unpack("C/C* v$repeat l$repeat", $testinput)), "\n"; # gives "1,2,3,4,5,6" which is ok, but uses two steps print join(',', unpack('C/C* @0 CXC /(x[C]) xX /v @0 CXC /((x[C])(x[v] +)) xX /l', $testinput)), "\n"; # gives "1,2,3,4,5,6" uses one step, but is a bit complex 1;

    In reply to Re^4: pack and unpack multiple arrays with one common repeat prefix by hexcoder
    in thread pack and unpack multiple arrays with one common repeat prefix by hexcoder

    Title:
    Use:  <p> text here (a paragraph) </p>
    and:  <code> code here </code>
    to format your post; it's "PerlMonks-approved HTML":



    • Are you posting in the right place? Check out Where do I post X? to know for sure.
    • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
      <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
    • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
    • Want more info? How to link or How to display code and escape characters are good places to start.
    Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Domain Nodelet?
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this?Last hourOther CB clients
    Other Users?
    Others having an uproarious good time at the Monastery: (2)
    As of 2024-04-24 15:44 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found