However, its not working exactly as I thought it would. Instead of $buffer being filled with a single byte value, it will actually be padded with null bytes of the size of the offset. For example: If I have the binary file:my $offset = 0; my $buffer; open (FILE, "file.binary"); binmode FILE; while ( read(FILE, $buffer, 1, $offset++) ) { ... Code here ... $buffer = ""; }
\aa\bb\cc\dd\ee
and I run the above code against it, I'll get the following values for $buffer:
$buffer = \aa
$buffer = \00\bb
$buffer = \00\00\cc
$buffer = \00\00\00\dd
etc.
What I really want is this:
$buffer = \aa
$buffer = \bb
$buffer = \cc
$buffer = \dd
and etc.
What makes this more bizarre, is if I undef $buffer every time, it will still add those padding null bytes. I've tried everything including undef, setting $buffer to "", reinitializing buffer (i.e. read(FILE, my $buffer, 1, $offset++)), but I can't seem to figure this out. Any suggestions?
In reply to Reading binary file byte by byte by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |