open (OUTPUT, ">$fname.tmp");
open (DATA, "$fname");
####
open OUTPUT, '>', "$fname.tmp" or die "Cannot open '$fname.tmp' $!";
open INPUT, '<', $fname or die "Cannot open '$fname' $!";
####
$offset = 0;
while (read(DATA, $data, BLOCKLEN, $offset)) {
my $blockhdr = unpack "H*", substr($data, 0, BLOCKHDR);
my $blockdt = unpack "H*", substr($data, BLOCKHDR, BLOCKDATA);
my $cdrdata = unpack "H*", substr($data, BLOCKHDR+BLOCKDATA, CDRLENGTH);
...
$offset += BLOCKLEN;
...
$offset += BLOCKLEN;
$offset -= 286;
####
my $total_record = hextoint(reverse_str(substr($blockdt,4)));