in reply to Nybbles take to long

built for AS 633 or 802!!!! sorry...

use Inline C => <<'_C_'; void woot(char *foo) { Inline_Stack_Vars; Inline_Stack_Reset; Inline_Stack_Push(newSViv( (unsigned char)foo[0] >> 4 )); Inline_Stack_Push(newSViv( (unsigned char)foo[0] & 0x0f )); Inline_Stack_Push(newSViv( (unsigned char)foo[1] >> 4 )); Inline_Stack_Push(newSViv( (unsigned char)foo[1] & 0x0f )); Inline_Stack_Done; } _C_ print join(' ',woot($n)),$/; # Gives 15 0 0 15
map_hex_split_unpack            5024/s                   --                    -26%                 -31%                           -32%                      -39% -75%
map_ord_and_shift_split         6827/s                  36%                      --                  -7%                            -8%                      -17% -66%
map_vec_lists_splice            7314/s                  46%                      7%                   --                            -1%                      -11% -64%
map_unpack_shift_mult_and_list  7385/s                  47%                      8%                   1%                             --                      -10% -63%
unpack_map_shift_and_list       8188/s                  63%                     20%                  12%                            11%                        -- -59%
woot                           20210/s                 302%                    196%                 176%                           174%                      147%   --