#! perl -sl use Time::HiRes qw[ time ]; our $LAYER //= ':raw'; our $B; $s = time; open (FILE, "<$LAYER", "junk.bin") or die "ERROR: Could not open $path.\n"; binmode FILE if $B; $n=0; while (1) { $eof = read (FILE, $header, 4); ($size, $code, $ftype) = unpack ("nCC", $header) ; # print join(':',$size, $code, $ftype, "\n"); if ($size == 0) { print "Size is zero. Exiting"; last; } $size = $size - 4; if ($size > 0) { $eof = read (FILE, $data, $size); } $n += 4 + $size; } close FILE; print $n; printf "Took %.3f\n", time() - $s; #### C:\test>junk41 -LAYER= Size is zero. Exiting 50450063 Took 0.648 C:\test>junk41 -LAYER= Size is zero. Exiting 50450063 Took 0.652 C:\test>junk41 -LAYER= -B Size is zero. Exiting 50450063 Took 0.305 C:\test>junk41 -LAYER= -B Size is zero. Exiting 50450063 Took 0.289 C:\test>junk41 -LAYER=:raw Size is zero. Exiting 50450063 Took 0.803 C:\test>junk41 -LAYER=:raw Size is zero. Exiting 50450063 Took 0.794 C:\test>junk41 -LAYER=:raw -B Size is zero. Exiting 50450063 Took 0.813 C:\test>junk41 -LAYER=:raw -B Size is zero. Exiting 50450063 Took 0.798 C:\test>junk41 -LAYER=:unix Size is zero. Exiting 50450063 Took 0.812 C:\test>junk41 -LAYER=:unix Size is zero. Exiting 50450063 Took 0.802 C:\test>junk41 -LAYER=:unix -B Size is zero. Exiting 50450063 Took 0.803 C:\test>junk41 -LAYER=:unix -B Size is zero. Exiting 50450063 Took 0.852 C:\test>junk41 -LAYER=:perlio Size is zero. Exiting 50450063 Took 0.330 C:\test>junk41 -LAYER=:perlio Size is zero. Exiting 50450063 Took 0.337 C:\test>junk41 -LAYER=:perlio -B Size is zero. Exiting 50450063 Took 0.305 C:\test>junk41 -LAYER=:perlio -B Size is zero. Exiting 50450063 Took 0.262 #### C:\test>junk41 -LAYER=:crlf Size is zero. Exiting 50466132 Took 0.668 C:\test>junk41 -LAYER=:crlf -B Size is zero. Exiting 50466132 Took 0.283 C:\test>junk41 -LAYER=:crlf:raw Size is zero. Exiting 50466132 Took 0.815 C:\test>junk41 -LAYER=:crlf:raw -B Size is zero. Exiting 50466132 Took 0.845