@b{@b{0..27}=(_,a..z,'.')}=0..27;@s=pop=~/./g;$p[$_[0]*$_%+@s]=$b{($b{$s[$_]}+$_)%28}for 0..$#s;join'',@p #### @e=split//,pop; @e=pop=~/./g; #### @;{@;{0..27}=(_,a..z,'.')}=0..27;$,=0;$;[$_[0]*$,++%@s]=$;{($;{$_}+$,)%28}for@s=pop=~/./g;join'',@;