http://qs321.pair.com?node_id=1065668


in reply to Hash Depriciated

I offer this slightly more compact code:

use strict; my $out = "12315141800F1F5F3F3F63410026DE8F45"; for my $hex ($out =~ /(\S{2})/g) { # split the strings into chunks of + two chars printf "hex => %s, binary => %08B\n", $hex, hex($hex); }
__OUTPUT__ hex => 12, binary => 00010010 hex => 31, binary => 00110001 hex => 51, binary => 01010001 hex => 41, binary => 01000001 hex => 80, binary => 10000000 hex => 0F, binary => 00001111 hex => 1F, binary => 00011111 hex => 5F, binary => 01011111 hex => 3F, binary => 00111111 hex => 3F, binary => 00111111 hex => 63, binary => 01100011 hex => 41, binary => 01000001 hex => 00, binary => 00000000 hex => 26, binary => 00100110 hex => DE, binary => 11011110 hex => 8F, binary => 10001111 hex => 45, binary => 01000101

*My* tenacity goes to eleven...

Replies are listed 'Best First'.
Re^2: Hash Depriciated
by johngg (Canon) on Dec 05, 2013 at 15:55 UTC

    Using a statement modifier also saves on typing.

    $ perl -Mstrict -Mwarnings -e ' my $out = q{12315141800F1F5F3F3F63410026DE8F45}; printf qq{hex => %s, binary => %08B\n}, $_, hex for unpack q{(a2)*}, $out;' hex => 12, binary => 00010010 hex => 31, binary => 00110001 hex => 51, binary => 01010001 hex => 41, binary => 01000001 hex => 80, binary => 10000000 hex => 0F, binary => 00001111 hex => 1F, binary => 00011111 hex => 5F, binary => 01011111 hex => 3F, binary => 00111111 hex => 3F, binary => 00111111 hex => 63, binary => 01100011 hex => 41, binary => 01000001 hex => 00, binary => 00000000 hex => 26, binary => 00100110 hex => DE, binary => 11011110 hex => 8F, binary => 10001111 hex => 45, binary => 01000101 $

    I hope this is of interest.

    Cheers,

    JohnGG