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


in reply to Re: Learning from Obfuscation
in thread Learning from Obfuscation

While those sites are nice (and somewhat informative -- abigail's page is especially good and shiny!), I think I'm still not grasping the thought process. It's like "try this, or try that", or "this does this and that does this". That's all well and good, but how did you decide to try this and try that?

"Why?" is my question, the "How" is usually less interesting to me... That is "Why was this approach chosen" rather than "How does this particular approach work". Perhaps the answer is evolutionary, and "why" is "because it works" and "because someone else tried this and I changed it", in which case it's not possible to approach this from my Software Design mentality and these things must instead be created out of a different thought process.

On the other hand, maybe my brain would just explode and I don't need to know :)

Replies are listed 'Best First'.
Re: Learning from Obfuscation
by Abigail-II (Bishop) on Jan 23, 2004 at 16:29 UTC
    It's like "try this, or try that", or "this does this and that does this". That's all well and good, but how did you decide to try this and try that?

    I addressed this in the first JAPH talk I gave. It went like First you get an idea, then you work out the details. Getting the idea can come from many sources: studying the manual page, reading Perl forums like comp.lang.perl.misc, p5p, The Perl Journal, or from IRC. If you look at my first set of slides, there's a section labelled "The making of a Japh". It discusses the process that started with seeing someone use &%%hole in a non-Perl related usenet group and ended with the Japh:

    split // => '"'; ${"@_"} = "/"; split // => eval join "+" => 1 .. 7; *{"@_"} = sub {foreach (sort keys %_) {print "$_ $_{$_} "}}; %{"@_"} = %_ = (Just => another => Perl => Hacker); &{%{%_}};
    (The code above will not always work correctly with 5.8.1 or later).

    Abigail