read (DATA, $data, 3); $tag = unpack "H2", substr $data,0,1,''; if ($tag =~ /(81|80|00)/) { # the Record Identifier H’80 is used as Filler record to fill in one byte if ($tag == "80") { $length = 2; } # the Record Identifier H’81 is used as Filler record to fill in several bytes if ($tag == "81") { $length = unpack "C4", substr $data,0,2,''; $length -= 3; } # the Record Identifier H’00 is used as Filler record to fill in 32 bytes if ($tag == "00") { $length=62; } read (DATA, $data, $length); $raw = unpack "H*", $data; if ($trace) { print ("FILLER\n"); printf ("%-20s : %-5s\n", "TAG", $tag); printf ("%-20s : %-5s\n", "RECORD LENGTH", $length); print ("RAW DATA : \n$raw\n"); } }