#! /usr/bin/perl -w use strict; sub godel{my ($f,$a,$l)=@_;return $a unless @$l;my$x=shift @$l;&$f( $x,&godel($f,$a,$l));}my @M=split '', "Just another ";my @I =split '', "Perl hacker,"; my @U =reverse @M; sub escher{my ($l,$m) =@_;sub{$l= pop @U if @U;$l.&$m();} } unshift@U, split '' ,"pool egnarts";my$bach=&godel(\&escher,&godel(\&escher,sub{return"\n"} ,\@I),\@M);print &$bach(); ### Inspired by Douglas Hofstadter's _GEB_