in reply to Re^2: Read structure in Perl
in thread Read structure in Perl

Try this. '<:raw' is roughly equivalent to binmode. The unpack templates: 'A100' tells it to treat the first 100 bytes as a null terminated string; 'i'(*) means treat the next 4 bytes as a signed integer.

#! perl -slw use strict; open IN, '<:raw', $ARGV[ 0 ] or die $!; my $binary = do{ local $/; <IN> }; ## read the whole file close IN; my( $name, $roll_no, $grade ) = unpack 'A100 i i', $binary; print "name: $name; no:$roll_no; grade:$grade"; __END__ C:\test>junk58 Myfile name: myname; no:149; grade:1
(*If the data is read on a different hardware platform from that where it is written you may need to change the 'i' template.)

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"I'd rather go naked than blow up my ass"

Replies are listed 'Best First'.
Re^4: Read structure in Perl
by Anonymous Monk on Mar 22, 2010 at 12:42 UTC
    Thanks for your information.