(udpate: fixed typo)
Another update: now with complete code:
sub windex { my ($s1, $s2) = @_; my $pos = -1; my $null = chr 0; my $len = length $s1; while( ($pos = index $s1, $null, $pos+1) >= 0 ){ substr $s1, $pos, 1, substr($s2, $pos, 1); } return $s1; }
It's fast, but it won't win the beer:
Rate split1 substr1 index split1 4.32/s -- -84% -100% substr1 27.7/s 541% -- -99% index 3757/s 86900% 13478% --
But don't bother, I don't like beer.. ;-)
Another update: fixed initial value of $pos. See Re: Challenge: CPU-optimized byte-wise or-equals (for a meter of beer) and the follow ups for more details.
In reply to Re: Challenge: CPU-optimized byte-wise or-equals (for a meter of beer)
by moritz
in thread Challenge: CPU-optimized byte-wise or-equals (for a meter of beer)
by dragonchild
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |