http://www.perlmonks.org?node_id=94284

$b="Just another Perl hacker.\nd";$c=uc join'', (split//,$b)[5,1,3,7,16,7,19,26]; chop $b;sub a{$b};eval join'=',map"*$_",qw($c a); print _Obfuscation_();

Replies are listed 'Best First'.
Re: Seems straightforward, but...
by tachyon (Chancellor) on Jul 06, 2001 at 01:35 UTC

    Here is a quick decon:

    $b="Just another Perl hacker.\nd"; # $c=uc join'',(split//,$b)[5,1,3,7,16,7,19,26]; # this line grabs chars out of $b and upper cases # them to give: $c = "AUTOLOAD"; # Hmm somwhow I don't think we are going to see # the crafty assembly of the _Obfuscation_() sub chop $b; # this removes the 'd' from JAPH needed to spell # the word AUTOLOAD sub a{$b}; # here we define a sub called a which returns # the string 'Just another Perl hacker.\n" # eval join'=',map"*$_",qw($c a); # this is eval *$c = *a; # otherwise written as: # *AUTOLOAD = *a; # or more traditionally sub AUTOLOAD {a()}; print _Obfuscation_(); # print AUTOLOAD sub which is a() which returns JAPH

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

(dissection) Re: Seems straightforward, but...
by japhy (Canon) on Jul 06, 2001 at 01:38 UTC
    The subject is enough of a warning.
    $b = "Just another Perl hacker.\nd"; $c = uc join '', (split//,$b)[5,1,3,7,16,7,19,26]; # $c is now "AUTOLOAD" chop $b; # to remove the "d" sub a{$b}; # this makes &a return $b eval # *AUTOLOAD = *a join '=', # '*$c = *a' map "*$_", # '*$c', '*a' qw( $c a ); # '$c', 'a' print _Obfuscation_(); # calls AUTOLOAD()


    japhy -- Perl and Regex Hacker