{ my @screen; my @pos = ( 0, 0 ); my @size = ( 80, 24 ); sub size { @_ ? @size = @_ : @size } sub at { @_ ? @pos = @_ : @pos } sub set { my @str = split //, $_[0]; $screen[ $pos[1] ][ $pos[0] + $_ ] = $str[$_] for 0 .. $#str; } # set sub clear { @screen = (); $^O =~ /win/i ? system('cls') : system('clear') } # clear sub show { for my $y ( 1 .. $size[1] ) { for my $x ( 1 .. $size[0] ) { my $char = $screen[ $y-1 ][ $x-1 ]; $char = ' ' unless defined $char; print $char; } # for print "\n"; } # for } # show }