my $buf = ' '; while (<>) { if (/Comparing files (.+) and (.+)/) { open FH,">>$2" or die "Can't open $2\n"; binmode FH; print "Opening $2\n"; } if (/([0-9A-F]{8}): ([0-9A-F]{2}) ([0-9A-F]{2})$/ and $3 gt $2) { sysseek FH,hex($1),0; print "Seek $1 (".hex($1).")\n"; sysread FH,$buf,1; print "Read ".sprintf("%2.2x",ord($buf))."\n"; } } __END__ Comparing files C:\PROGRAM FILES\PROJECT ENTROPIA\DATA\MODELS\Models.bnt and C:\DATA\MODELS\MODELS.BNT 05063755: 03 43 0875CF55: BF FF 09DC0155: 00 40 0B209955: 40 00 0DE8AD55: 0A 4A 0DF4ED55: 7F 3F Comparing files C:\PROGRAM FILES\PROJECT ENTROPIA\DATA\TERRAIN\50.bnt and C:\DATA\TERRAIN\50.BNT 03040155: 15 55 Comparing files C:\PROGRAM FILES\PROJECT ENTROPIA\DATA\TEXTURES\Textures.bnt and C:\DATA\TEXTURES\TEXTURES.BNT 088C1355: 4C 0C 10F45955: 40 00 1155A355: 1E 5E 181FDB55: A6 E6