Yep, more elegant than mine. In the interest of TIMTOWTDI,
I'll pile on, here's my brutish code.
YuckFoo
#!/usr/bin/perl
use strict;
if (@ARGV < 1) {
print STDERR "\nUsage: $0 filename [bytes]\n\n";
exit;
}
my ($File, $Bytes) = @ARGV;
my ($numread, $totread, $lines);
my ($ch, $input, $hex, $text);
if (!open(IN, $File)) {
print STDERR "\nError opening file: $File\n\n"; exit;
}
while ($numread = read(IN, $input, 16)) {
$totread += $numread;
$hex = $text = '';
for $ch (unpack("C16", $input)) {
$hex .= sprintf("%2.2x ", $ch);
if ($ch >= 0x20 && $ch < 0x7f) { $text .= chr($ch); }
else { $text .= '.'; }
}
substr($hex, 24, 0, ' ');
printf(STDOUT "%8.8x %-48.48s %-16.16s\n",
$lines * 16, $hex, $text);
if (++$lines % 8 == 0) { print "\n"; }
if ($Bytes && $totread >= $Bytes) { last; }
}
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.