use strict; use warnings;
my @hidden_words_to_find = (
'PERL', 'USESTRICT', 'ARRAY',
'PERLMONKS', 'LENGTH', 'WHILE',
'FOREACH', 'MODULUS', 'CPAN',
'SUBROUTINE','PRINT', 'SCALAR',
'REGEX', 'IF','ELSE', 'WARN',
'BLESS', 'EXIT','HASH', 'JAPH',
);$_='
P X U S E S T R I C T G L A F I
I E E R Z I A P S Z R E E A W N
X A R R A Y E K E D J D L D F J
D F S L W M N C J C E R I C E R
U H F C M O N L E N G T H I D O
M R X H M H Z W I E R X W A S D
H E Y L C E S T R V H W D E W Q
E G R X W M U A D F E G E L S E
C E M J F O R E A C H T R H E C
P X U H R D T Y R P Y N B X P B
W C B B Z U E N R A W A C V R E
D F U V D L S A C N B V Y A I T
S S E L B U B H E W S D L N N D
A D X G E S F K S J G A R T T F
F G I E B N S B Z A C W Q U E A
S D T G A E R N N S H P A J Q D
';my $a=q(s;\n;;g;s# ##g;@_=spl
it(//,$_);my$i=0;for(@_){($i%16
eq 0)?(print $/):();print,prin
t ' ';$i++}for my$word(@hidden_
words_to_find){my$m=$word;my$g=
$m;$g =~ tr~A-Z~a-z~;my$gi='s/'
."$m".'/'."$g".'/gi';eval$gi;my
@m=split(//,$m);my @g=split(//
,$g);$gi='s/';for($i=0;$i<(@m-1
);$i++){$gi.="$m[$i]".'(\w{15})
';}$gi.="$m[$i++]".'/';for($i=0
;$i<(@g-1);$i++){my$j=$i+1;$gi.
="$g[$i]".'$'."$j";}$gi.="$g[$i
++]".'/gi';eval$gi;@m=split(//,
$m);@g=split(//,$g);$gi='s/';fo
r($i=0;$i<(@m-1);$i++){$gi.="$m
[$i]".'(\w{16})';}$gi.="$m[$i++
]".'/';for($i=0;$i<(@g-1);$i++)
{my$j=$i+1;$gi.="$g[$i]".'$'."$
j";}$gi.="$g[$i++]".'/gi';eval$
gi;$gi='s/';for($i=0;$i<(@m-1);
$i++){$gi.="$m[$i]".'(\w{14})';
}$gi.="$m[$i++]".'/';for($i=0;$
i<(@g-1);$i++){my$j=$i+1;$gi.="
$g[$i]".'$'."$j";}$gi.="$g[$i++
]".'/gi';eval$gi;@m=reverse(@m)
;@g=reverse(@g);$gi='s/';for($i
=0;$i<(@m-1);$i++){$gi.="$m[$i]
".'(\w{16})';}$gi.="$m[$i++]".'
/';for($i=0;$i<(@g-1);$i++){my$
j=$i+1;$gi.="$g[$i]".'$'."$j";}
$gi.="$g[$i++]".'/gi';eval$gi;$
gi='s/';for($i=0;$i<(@m-1);$i++
){$gi.="$m[$i]".'(\w{14})';}$gi
.="$m[$i++]".'/';for($i=0;$i<(@
g-1);$i++){my$j=$i+1;$gi.="$g[$
i]".'$'."$j";}$gi.="$g[$i++]".'
/gi';eval$gi;$gi='s/';for($i=0;
$i<(@m-1);$i++){$gi.="$m[$i]".'
(\w{15})';}$gi.="$m[$i++]".'/';
for($i=0;$i<(@g-1);$i++){my$j=$
i+1;$gi.="$g[$i]".'$'."$j";}$gi
.="$g[$i++]".'/gi';eval$gi;$m=j
oin"",@m;$g=join"",@g;$gi='s/'.
"$m".'/'."$g".'/gi';eval$gi;}pr
int $/;s;[A-Z]; ;g;@_=split"",$
_;$i=0;for(@_){($i%16 eq 0)?(pr
int $/):();print,print ' ';$i++
});$a=~ s;$/;;g;eval$a; __END__
Now if only I could get it to work with