while($testStr =~ m/(.)/g) { $string = pad(codepoint_hex($1)); print("$string\n"); print charnames::viacode($string) . "\n"; } sub codepoint_hex { if (my $char = shift) { return sprintf '%2.2x', unpack('U0U*', $char); } } sub pad { my $str = shift; while (length $str < 4) { $str = "0$str"; } return "0x$str"; }