#!/usr/bin/perl use Curses; init(); make_frame(); while(1) { my( $M, $m ) = `command` =~ m/M: (\d+), m: (\d+)$/g; put( $M, $m, ++$count{$M}{$m} ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub init { $SIG{__DIE__} = $SIG{TERM} = sub { endwin; exit }; instiller; curs_set(0); start_color(); my @colors = ( COLOR_BLACK, COLOR_BLUE, COLOR_GREEN, COLOR_YELLOW, COLOR_RED ); foreach my $color ( 1 .. @colors ) { init_pair( $color, ( $colors[ $color ] ) x 2 ) } } sub make_frame { foreach my $y ( 1 .. 80 ) { my $Y = $y; if( $y % 10 == 0 ) { $y /= 10 }; $y %= 10; addch( 0, $Y+1, "$y" ); addch( 10, $Y+1, "$y" ); } foreach my $x ( 1 .. 9 ) { addch( $x, 1, "$x" ); addch( $x, 82, "$x" ); } refresh; } sub put { my( $major, $minor, $n ) = @_; attron( COLOR_PAIR($n) ); addch( $major, $minor+2, " " ); attroff( COLOR_PAIR($n) ); refresh; }