in reply to Unjumbling JAPH

Very nice!

If you replace all instances of $) with $: (or some other unused variable), it'll even run on Windows 98.

$|=($\=>@])=("\r"=>split//=>q=sPnh aku,telchte rJeaorr =);{($@,$:)=map +$***$_%25 =>3=>2;@][$:=>$@]=@][$@=>$:];print@];select$,,$,,$,,$*/$=;$*++-$=&&red +o}print$/