Postorder

Score: 51.10 (pass)

using perl's magical //

#!perl -l
$ARGV[$_=pop]=~s|.|s~($&)(.*)~
$2
$1~|eg;print//

Score: 51.10 (pass)

#!perl -l
$ARGV[$_=pop]=~s}.}s~($&)(.*)~
$2
$1~}eg;print//

Score: 52.10 (pass)

I actually don't know why "$ARGV[$_=pop]" is working... I'm glad I don't have to understand my solution =)

#!perl -l
$ARGV[$_=pop]=~s|.|s~($&)(.*)~
$2
$1~|eg;print//g

Score: 55.16 (pass)

#!perl -l
$_=pop;$ARGV[0]=~s#.#s,($&)(.*),
$2
$1,#eg;print/./g

Score: 58.15 (pass)

#!perl -l
($p,$_)=@ARGV;$p=~s#.#s/($&)(\w*)/ $2 $1/#eg;print/\w/g

Score: 80.07 (pass)

#!perl -l
sub _{do{$ARGV[0]=~m/./g;my$r=$&;(map{_($_)}split$r),$r}if$_=pop}print _(pop)

Score: 90.10 (pass)

well, first try, last one on leaderboard, but at least it runs with -w =)

#!perl -l
sub
_{if(my$i=pop){$ARGV[0]=~/(.)/g;my$r=$1;$i=~s/(.*)$r//;_($1)._($i).$r}}print
_(pop)