http://qs321.pair.com?node_id=258813


in reply to YAJAPH - Yet Another JAPH

It's a decent attempt especially for a first time ;-)

I took some pleasure in decyphering your code to derive at the spoiler. You've used a number of interesting tricks to obfuscate the code.

Some of the discovered obfuscation tricks:
1. use of => in place of ;
2. use of non standard delimiters in search and replace regexp (s///)
3. Hiding $_ and __DATA__ input handle behind the *_ typeglob.
4. Using left shift bitwise operation to calculate N/2 (e.g. N >> 1 instead of just N/2).
5. and some other ;-)


For the simplified version of the JAPH look below:
#!perl -s $/ = undef; my $data = <DATA>; # remove all non numeric characters from $_ $data =~ s/[^\d]//g; # take 3 digits at a time and convert them to a char $data =~ s/(\d{3})/chr($1)/egx; @data = split('', $data); my @letters; for (my $i = 1; $i <= @data / 2; $i++) { push @letters, $data[$i] ^ $data[-$i]; } print join('', @letters); __DATA__ 042123185208084070254140 01 01 700 Combat Squirrel's 772 4017 1061 17923 f i r s t 71340 190970 421301 0408004 J A P H 4064086 12005007 30590112 2706606512724413622702921714903722210122 6***1*5*9*1*0*2*0*3**2*1*6*3*2*0*4*0*4***9


update: Front-paged this one as I felt it deserves it.

_____________________
"We've all heard that a million monkeys banging on a million typewriters will eventually reproduce
the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true."

Robert Wilensky, University of California