for(reverse<>){chomp;$c=0;push@{$b[$c++]}," "ne$_?$_:()for split//}while($_=join"",map{shift(@$_)or" "}@b){last if/^ +$/;unshift@o,$_}$,=" ";print@o
Note that non-ascii characters in the above source code will be escaped (such as \x9f).
download
return to the top page