Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Perlish approach to parsing a binary blob

by AnomalousMonk (Archbishop)
on Apr 09, 2018 at 14:17 UTC ( [id://1212592]=note: print w/replies, xml ) Need Help??


in reply to Perlish approach to parsing a binary blob

... I'm a little less sure about the first unpack to split the $data scalar into the list of items.

Can you say more about why you are unsure about this statement? Is it because of the interpolated  $entry_size component in the unpack template? If so, be assured that this is a perfectly kosher maneuver: a template specification string is just a string no matter how compounded. (Sometimes a string is just a string...)

Update 1: Changed a word, added a link.

Update 2: Hey, this is very late, but I just noticed that the unpack documentation includes an example of this exact technique in a limited implementation of substr:

sub substr { my($what,$where,$howmuch) = @_; unpack("x$where a$howmuch", $what); }


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^2: Perlish approach to parsing a binary blob
by mxb (Pilgrim) on Apr 09, 2018 at 14:35 UTC

    Hi,

    Yes, I think that's pretty much hit it straight on.

    The "(a$entry_size)*" just looked a bit odd when I first wrote it. I'm glad to see that is a reasonably common approach and does not immediately scream out as "bad code" or "obfuscation"

    Thanks

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1212592]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2024-04-25 07:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found