Du kannst es dir schon mal einfacher machen, und die Funktion
md5_hex verwenden. Dann musst du davon nur noch jeweils zwei Zeichen nehmen und
\x davor setzen. So z.B.
use Digest::MD5 qw/md5_hex/;
print "\\x$_" for md5_hex( 'abc' ) =~ /(..)/g;
print "\n";
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B