Well this is my first attempt at a JAPH. Which seems to be what most people preface their code with, so I will be a good little lemming. ;0) It definitely won't pass -w but it works and I'm really psyched about that.
@_=(Z & t,o & u,P | b,D | h);push @_,
split//,for(o & x,u & a,b | c,H | c,o & u,v & z,".\n");
($g,$f,$d,$e,$a,$b,$c)=qq;reagthhangagfgoa;
=~/^(.)(.).{2}(.)(.).(.)(.).{5}(.).$/;unshift @_,qq|$a$b$c$d$e$f$g|;
unshift @_,(reverse(split/k:SJJ/,qq;tk:SJJsk:SJJuk:SJJJ;
));print join("",@_[0..3])." $_[4] ".join("",@_[5..8])." ".
join("",@_[9..16]);
Moo