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

Re: Bin\Hex Parsing in Perl ?

by jeroenes (Priest)
on Oct 25, 2001 at 09:46 UTC ( #121382=note: print w/replies, xml ) Need Help??


in reply to Bin\Hex Parsing in Perl ?

Other monks learned me how to doo this some while ago. A bit confused though whether you are trying to read/write binary or a text file populated with hexidecimal characters.

Your method seems fine to me, but writing in general can be done just using the print command, whether or not your strings are binary. On win32 you do need the binmode command, though.

For reading you could also use this to fetch fixed-length records:

my $rec; do_something( $rec) while read(FILE, $rec,$reclength);

With unpack you can translate both binary and hexidecimal data:

@hd = unpack 'h*', $rec; @floats = unpack 'f*', $rec;

So the exact name of what you are trying to do? Reading binary files, unpacking ....

I will have a look into that Data:Hexdump module. It's probably worth it.

Mehopes it's all a bit clearer to you now.

Jeroen
"We are not alone"(FZ)

Update: I've read the HexDump docs, and what it does is just to make a binary file ready for human reading like in a hex viewer. So it's very usable to dump a bin file on a tty, but not fit to parse a binary file for subsequent use in a script. See the code above.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://121382]
help
Chatterbox?
[stevieb]: I'm working on hiding the fact the software needs MetaCPAN::Client, as I often have a hell of a time installing it. I'm going to change it to let the user know if they do revdep that it needs to be installed, and remove that distribution ..
[stevieb]: ...from being a prereq

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2017-06-25 23:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (572 votes). Check out past polls.