How often do you need to compress internal whitespace? Anyway. it is faster:
$ perl -MBenchmark=cmpthese -wE'my$x=join" "=>"",("abc")x5,"";say"s
+ourc: |$x|";sub trim{join" ",split" ",$x};sub rgx{$x=~s/^\s+//r=~s/\s
++$//r=~s/\s\s+/ /gr};say "split: |",trim(),"|";say"regex: |",rgx(),"|
+";cmpthese(-2,{splt=>\&trim,rgx=>\&rgx})'
sourc: | abc abc abc abc abc |
split: |abc abc abc abc abc|
regex: |abc abc abc abc abc|
Rate rgx splt
rgx 506423/s -- -71%
splt 1767763/s 249% --
Enjoy, Have FUN! H.Merijn