http://qs1969.pair.com?node_id=1021348


in reply to Unpack Bin file problem

Your problem is in
my @lines = unpack ("W*", <INFILE>);
and you haven't touched $/, so this will just read one line, until the first "\n".

Do

local $/;
just before you read the file, for example in a bare block, and oh, don't forget to binmode the filehandle if this has to work on something other than Linux, and it'll work fine. It sets this special variable to undef, in case you were wondering, so now you'll read the whole file.

Replies are listed 'Best First'.
Re^2: Unpack Bin file problem
by mark4444az (Sexton) on Mar 01, 2013 at 22:36 UTC
    OK, That worked. Your comment, "It sets the special variable to undef", is not yet clear to me. I will have to research this. I greatly appreciate you help. I understand the concept of $_, just not how local $/ modifies it.
      It doesn't modify the behavior of $_, but of <INFILE> (for any handle).

      Perl has a bunch of special variables that change the behavior of perl. $/ Is one of them, it changes what string readline, and thus <INFILE>, searches for as a line terminator, to read a whole line at once. When undef, it'll just make it slurp in the rest of the file.

      OK, that makes sense now. Thanks again.