http://www.perlmonks.org?node_id=694989

As told by wikipedia the one in the title is a transform useful when compressing data. I spent some minutes on writing these snippets for direct and inverse transformation. May any wise monk help shrinking the code, I'd be thankful and glad to see the results :)
$/="";$l=length($w=<>);map{print+chop}sort+map{substr"$w\0$w",$_,$l+1} +0..$l push@w,split//for<>;map{@_=sort@_;$_[$_]=$w[$_].$_[$_]for+0..$#w}0..$# +w;print+grep{s/\0$//}@_

Replies are listed 'Best First'.
Re: Burrows-Wheeler transform
by moritz (Cardinal) on Jul 01, 2008 at 17:58 UTC
    Unless you're trying to golf, you should strive to make it more readable, not shorter.
      You're right, but I was actually making also a try at golf.
      -- 
      @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_