At 09:50 AM 3/19/2002 -0500, Tim Musson wrote: >Thanks to all who sent pointers! > >Here is my code before I put it up as a web page tool (and clean it up >and comment it <g>). > >comments/suggestions anyone? > >#!perl -w >use strict; >use diagnostics; > >my $debug = "yes"; >my (@mac); >my $mac = "0123 6789 cdef"; >$mac =~ s/\s//g; >my $i = 0; >while($mac =~ /(.{2})/g){ > $mac[$i++] = $1; > my $str = unpack("B8", pack("H2", $1)); > print $1 . " - " . "$str\n" if $debug; > my $revstring = reverse($str); > my $hex2 = unpack("H2", pack("B8", $revstring)); > print " $revstring - $hex2\n\n" if $debug; >}
I found a slightly more concise phrase. The first transformation swaps the two hex digits within each byte, keeping the bytes in original order. The second transformation is a lookup table for the function that reverses any one hex digit. my $Debug = 1; my $InputStr = '7BB57DF7'; (my $NibbleSwapped = $InputStr . ' ') =~ s/(.)(.)/$2$1/g; (my $Reverse = $NibbleSwapped) =~ tr/0-9A-F/084C2A6E195D3B7F/; print $InputStr . "- " . $NibbleSwapped . "-" . $Reverse . "\n" if $Debug; Obviously, this doesn't strips spaces etc - that's easy enough. I just started the camel book a few days ago, so I hope the cognoscenti can point out improvements. -- tvc -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]