#!/usr/bin/perl $BYTES_PER_LINE = 16; # 00000000 00000000 23 21 2f 75 73 72 2f 62 69 6e 2f 70 65 72 6c 0a | #!/usr/bin/perl. | open FILE, $ARGV[0]; $location = 0; while ( read FILE, $buffer, $BYTES_PER_LINE ) { @bytes = unpack "C*", $buffer;; printf "%.8u %.8x ", $location, $location; foreach $i ( 0..($BYTES_PER_LINE-1) ) { if ( $i < scalar(@bytes) ) { printf "%.2x ", $bytes[$i]; } else { print " "; } } print " | "; foreach $i ( 0..($BYTES_PER_LINE-1) ) { if ( $i < scalar(@bytes) ) { if ( $bytes[$i] > 31 && $bytes[$i] < 127 ) { print chr($bytes[$i]); } else { print "."; } } else { print " "; } } print " |\n"; $location += $BYTES_PER_LINE; }