Ah.. 'tis that time of year again when a young hacker's
thoughts turn to...obfuscation. And love. The perfect last
minute gift idea for your better half. Promise them
"extra goodies" if they can figure out how it does
what it does. ;)
P.S. Looks fairly clean on a wide screen - one sub per line
#!perl
use strict;
$_= reverse"rekcaH lreP rehtonA tsuJ";&print;
exit;
sub Cards($$$){my$__;seek(DATA,0,0);$/="$__";<DATA>=~m((\x21));push(@_
+=>"$1\n");}
sub Fun{<DATA>=~/[SEX]/;splice(@_,-1,0,uc $&);$_[$|].=uc$&." ";$_[8]=u
+c$&;$_[2].=" ";}
sub Flowers{for(reverse sort{($a=~/(m)/i and$*=$1 or $a=~/\W+\w{3}\W+/
+)<=>$b=~/m/i or $a!~/\W+(\w{3}\s+)*?\S+/}keys%SIG){last if$$=chop;nex
+t unless$$++;}splice(@_=>1,0=>$*);&TwoLips;}
sub TwoLips{($a=(split(/[A-Z]/))[1])=~tr(ansliteration)/ab/cd;splice(@
+_,-3,0,uc chop$a);&Yum;}
sub CandyHeart{for(@_){length>5 and next;print;}}
sub Yum{eval("use Candy::Chocolates;");if ($@=~/\s*([\w\/]+).pm/){spli
+ce(@_,-4=>0,uc chr vec($1,2=>8));splice(@_,-1,0,uc chr vec($1,2,8));$
+_[4].=uc substr($1,-5,1);}}
sub Hearts{$==length;@_=(\$$=>\\$$=>\%*=>\*$);for($$=$#_+1;$$;){$!=ran
+d($$--+1);$_[$$,$!]=$_[$!,$$];}$#_=4;for(reverse@_){$_ or next;$,=ref
+$_;$;=length$,;$^T=0;for(0..($;)-1){$^T+=vec($,,$_,$=/3);}$$=chr$^T/$
+;;;}push(@_=>$$);$,="";&Diamonds;}
sub Diamonds{push(@_=>chr(substr($=,-1,1)+substr($=,0,1).substr($=,-1,
+1)+substr($=,0,1)));&Clovers;}#Feeling lucky??
sub Clovers{eval;$*=2;$*=uc((split(chr($***$***$**$*)=>$@))[5]);substr
+($*,1,1)="";splice(@_,1,0,$*);&Moons;}
sub Moons{unshift(@_=>chop(@_[7]),(split''=>(ref \@_))[4]);}
sub print($){$$-=$$;$!=@_[$$]=~s(((\W+[\w{4,5}]+?)(\032?(\w+?).*)(?:\1
++)\x3A{1,2}.+))($2?$1?$3?"$2$1$3":"$3$2$1":"$1$3$2":$1;)e;&Hearts;!$$
+ or &Gifts;}
sub Gifts{&Cards;&Flowers;&Fun;&CandyHeart;}
__DATA__
Data?!?
LOVE does not require data! (but this script does!)