#! 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