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


in reply to A curses-based JAPH

Since eyespoplikeamosquito laid out a brief history of the JAPH ...

Thanks for the acknowledgement ... despite the spelling variation. ;-) So now I know the merlyn, the larry and the brian have all written a JAPH. What about TheDamian?

Replies are listed 'Best First'.
Re^2: A curses-based JAPH
by TheDamian (Vicar) on Dec 11, 2004 at 00:39 UTC
    I've never written one. I suppose if I did, my first attempt might look something like:
    #?<')I;G0G2G5S="!A;F]T:&5R(%!E<FP@:&%C:V5R)P``` eval<DATA>;sub'_{$_=unpack+u=>$_=>until/u(?{eval})/} __DATA__ seek+DATA=>$%,%$;_%;for<DATA>=~'.(.*.).'

      Thanks for that. Very evil, er, nice. /me scribbles some new obfu tricks.

      If I may make a criticism of this first attempt from a JAPH beginner, it is the title. AFAICT, by Perl Monks convention, it should read something like "My First JAPH!!!" and contain a plea to please be kind. ;-)

      Oh, and it's not canonical. To canonicalize, replace the first line with:

      #@<')I;G0G2G5S="!A;F]T:&5R(%!E<FP@:&%C:V5R+"<``
      As a bit of a spoiler, re-formatting the code like this:
      #@<')I;G0G2G5S="!A;F]T:&5R(%!E<FP@:&%C:V5R+"<`` eval<DATA>; sub X { $_ = unpack('u', $_) until /u(?{eval})/ } __DATA__ seek(DATA, 0, 0); X() for <DATA> =~ /.(.*.)./;
      makes it a bit easier to understand.