So I thought I'd try my hand at this again. I spent more time on this one, and I think it came out pretty well. I think of it as something of a tribute. For one thing, unlike my First Attempt., this one runs under -w and use strict

my@a;use strict;use vars qw($t $y $i $c $e $f $u $q);;$c=q##;my$p=sub {print@_};;;our$w=sub{system(q@clear@ )};our$ pa= sub{ select( $ t,+$y,$ u,shift )};;;my$ q=sub { while(pop ){&$w,&{ $p};&$pa( .05)}}; +$|=my$s= sub { push@a,@_ ;&{ $p} ;shift eq "\t" || &$pa(.1) };my@l= qw(9 10 32 44 45 63 65 72 73 74 76 80 83 87 97 98 99 100 101 102 103 104 105 107 108 0110 111 0112 0114 0115 116 117 0118 119 121 ) ;our@q = qw(13 21 14 30 02 22 29 02 30 21 18 2 12 26 31 25 17 2 26 19 02 11 18 28 24 5 1 8 29 2 22 30 2 25 26 30 02 30 21 18 02 29 26 31 25 17 02 26 19 02 14 02 33 14 24 24 2 27 18 26 27 24 18 2 21 14 32 18 1 29 30 26 27 27 18 17 2 15 14 25 20 22 25 20 02 30 21 18 22 28 02 21 18 14 17 29 2 14 20 14 22 25 29 30 5 1 0 0 04 10 14 28 28 34 02 13 14 24 24);$_=join"" ,map{ chr}@ l[@q] ;my$d=qq%Just$"Another$"Perl$"Hacker,%;&$w;s@.@&$s($&)@gsme;& $pa(.3),&$q(@a);$\=qq^\r^;for($d=~m;(.);gsxi){&$p($_,$c);&$pa (.1);$c=$_.$c;}while(length$c){$f++;$e.=substr($c,-1,1,'');my ($h,$g);if($f>12){$g=25-$f;$h='';}else{$g=$f;$h=substr($c,0,( 25-($f*2)));};+$g or $\='';;&$p(' 'x+$g,+$h,+$e)&& &$pa(.1);}

P.S. Windows users will need to change "clear" to "cls" near the end of line three. Minor impact on the shape of the code can be offset by adding semi-colons someplace.

May the Force be with you

Replies are listed 'Best First'.
Re: Tribute
by neilh (Pilgrim) on Oct 21, 2004 at 02:35 UTC
Re: Tribute
by StrebenMönch (Beadle) on Oct 21, 2004 at 15:48 UTC
    Very nice!!
    Streben Mönch