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


in reply to Re: Re: The Matrix Reloaded: JAPH
in thread The Matrix Reloaded: JAPH

So, incorporating abell and cfreak's suggestions, you get:

#!/usr/bin/perl -w @screen = ( ' 'x70 . "\n" ) x 20; $gen_line = sub { my $qw; for(1..70){ if( !$q[$_] && rand > .993 ){ $q[$_] = q$.$ x 5 . q$ $ x 1 . ${ [ qw$tsuJ rehtona lreP rekcaH$ ] }[$qq++] . q$ $ x 1 . q$.$ x 5; $qq = $qq > 3 ? 0: $qq; } if( $q[$_] ){ ( $qx, $q[$_] ) = split//, $q[$_],2; $qw .= $qx; }else{ $qw .= q$ $; } } "\33[0;32m$qw\33[0m"; }; while(1) { print join '', @screen; # Drop last line pop @screen; # Put a new line on top unshift @screen, $gen_line->() . "\n"; # Sleep for 0.1 seconds select(undef, undef, undef, 0.1); }

Cool, monks! =]


cp
----
"Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic."