use Tk; use Tk::NoteBook; use IO::Handle; my $S=IO::Handle->new; my $D=IO::Handle->new; my $E=IO::Handle->new; my $baseDir = "/"; my $sumFile = $baseDir."summary.log"; my $detFile = $baseDir."detail.log"; my $errFile = $baseDir."error.log"; open($S,"tail -f $sumFile |") or die $!; open($D,"tail -f $detFile |") or die $!; open($E,"tail -f $errFile |") or die $!; $mw = MainWindow->new(); $mw->geometry( "600x200" ); $book = $mw->NoteBook()->pack( -fill=>'both', -expand=>1 ); my $sumTab = $book->add( "Sheet 1", -bitmap => 'info'); my $detTab = $book->add( "Sheet 2", -bitmap => 'questhead'); my $errTab = $book->add( "Sheet 3", -bitmap => 'error'); my $sumText = $sumTab->Scrolled('Text', -wrap=>'none')->pack(-expand=> +1); my $detText = $detTab->Scrolled('Text', -wrap=>'none')->pack(-expand=> +1); my $errText = $errTab->Scrolled('Text', -wrap=>'none')->pack(-expand=> +1); $sumText->fileevent(\*$S,'readable',[\&fillSummary,$sumText]); $detText->fileevent(\*$D,'readable',[\&fillDetails,$detText]); $errText->fileevent(\*$E,'readable',[\&fillErrors,$errText]); MainLoop; sub fillSummary { my ($w) = @_; my $text = <$S>; $w->insert('end',$text); $w->yview('end'); } sub fillDetails { my ($w) = @_; my $text = <$D>; $w->insert('end',$text); $w->yview('end'); } sub fillErrors { my ($w) = @_; my $text = <$E>; $w->insert('end',$text); $w->yview('end'); }
In reply to Re^4: Perl:TK - tail -f to text widget
by rehmanz
in thread Perl:TK - standard output to text widget
by crabbdean
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |