#! perl -slw use strict; use List::Util qw[ max min ]; use Win32::Console; my $OUT = Win32::Console->new(STD_OUTPUT_HANDLE); my $origAttr = $OUT->Attr; $OUT->Cls; $OUT->Size(1000, 1000); my ($maxx, $maxy) = $OUT->MaxWindow; $OUT->Window( 1, 0, 0, $maxx-1, $maxy - 1 ); my $striped = chr( $FG_BLUE | $BG_WHITE ) . chr( $FG_LIGHTBLUE | $BG_LIGHTGRAY ); for my $row ( 1 .. 1000 ) { $OUT->WriteAttr( $striped x 500, 0, $row ); $OUT->WriteChar( '1234567890' x 100, 0, $row ); } for ( 1 .. 3 ) { for my $n ( 0 .. $maxx - 2 ) { $OUT->Window( 1, min( $maxx-2, $n ), min( $maxy-2, $n ), $maxx-1, $maxy-1 ) or die $^E; Win32::Sleep 3 - $_; } for my $n ( 0 .. $maxx ) { $OUT->Window( 1, 0, 0, min( $maxx-1, $n ), min( $maxy-1, $n ) ) or die $^E; Win32::Sleep 3 - $_; } } $OUT->Attr( $origAttr ); $OUT->Cls;