Topological Sort

Score: 82.47 (fail)

Chopped two chars.

#!perl -lna0
\sort{$z="\Q$a",/^(?!$z ).* $z
/m||s/(\G|\s)$z\s/
/g&&print$a}(@F)x9;&#if/./

Score: 83.47 (fail)

#!perl -lna0
\sort{$z="\Q$a",/^(?!$z ).* $z
/m||s/(\G|\s)$z\s/
/g&&print$a}(@F)x@F;&#if/./

Score: 84.47 (fail)

Totally new solution.

#!perl -lna0
&#for(sort{$z="\Q$a",/^(?!$z ).* $z
/m||s/(\G|\s)$z\s/
/g&&print$a}(@F)x9)x/./

Score: 84.50 (pass)

#!perl -lna0
for$a((@F)x@F){$z="\Q$a",/^(?!$z ).* $z
/m||s/(\G|\s)$z\s/
/g&&print$a}&#if/./

Score: 131.62 (fail)

First working solution.

#!perl -pal
$g=~s/(^| )\Q$F[1]\E( |$)/$1@F$2/g||($g.=" @F")}{$_=$g;s/(\G| )(\S+)(?= \2( |$))//g;s/^ //;y/ /
/;/(^|
)(.*)
.*
\2(
|$)/s&&die