At least for the last case, Perl has an optimized version:
$query =~ tr[ ][]s;
and it should be faster or at least as fast as the s/// version. Another version to try would be s/\s+/ /g - there is no need to use the counting variant of {2,}, and skipping might be slower than just writing the output "replacement".
In reply to Re^3: In search of an efficient query abstractor
by Corion
in thread In search of an efficient query abstractor
by xaprb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |