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