sub hash_style2 { my %values; my @temp = @master; push @{$values{substr($_,0,1)}}, substr($_,2) for @temp; print "@{$values{a}} <==> @{$values{b}}\n" if $testing; } sub ikegami { my @temp = @master; local $_ = "@temp"; my @a = /\ba_(\d+)\b/g; my @b = /\bb_(\d+)\b/g; print "@a <==> @b\n" if $testing; } #### Rate Trinary New_Grep Original ikegami Hash2 Tri_Substr Switch Tri_Substr2 Trinary 10273/s -- -5% -22% -34% -40% -41% -41% -50% New_Grep 10766/s 5% -- -18% -31% -37% -38% -38% -48% Original 13096/s 27% 22% -- -16% -23% -25% -25% -37% ikegami 15683/s 53% 46% 20% -- -8% -10% -10% -24% Hash2 17016/s 66% 58% 30% 8% -- -2% -3% -18% Tri_Substr 17437/s 70% 62% 33% 11% 2% -- -0% -16% Switch 17453/s 70% 62% 33% 11% 3% 0% -- -15% Tri_Substr2 20651/s 101% 92% 58% 32% 21% 18% 18% --