for ( [ 127, v4.127 ], [ 128, v4.128 ], [ 160, v4.160 ], [ 194, v4.194 ], ) { my ($x, $vstr) = @$_; # Workaround utf8::downgrade(my $vstr_dn = $vstr); printf( "got: %04X " . "workaround: %04X " . "expecting: 04%3\$02X or %3\$02X04\n", unpack('S', $vstr), unpack('S', $vstr_dn), $x, ); }