#!/usr/bin/perl -w $c = ' $#ARGV + 1 or print "$0 \n" and die; ($p = shift) =~ s/[^a-zA-Z]//g; @q = map {$_ < 91 ? (91 - $_) % 26 : $_ - 97} unpack "C*", $p || "a"; for($b = 26; $b--;) { $d{$_}{$b} = $_ foreach 0..255; for($o = 26; $o--; map {$d{$_ + $o}{$b} = $_ + ($o + $b) % 26} (97, 65)) {} } for($o = 0; $i = <>;) { foreach (unpack "C*", $i) { ($c = chr$d{$_}{$q[$o]}) =~ /[a-zA-Z]/ && $o++; $o %= $#q + 1; print $c; } } '; 'code' =~ /code(?{eval $c})/;