#!/usr/bin/perl -w # use strict; use Curses::UI::POE; use POE::Wheel::FollowTail; use constant MAX_LINES=>30; my $cui = new Curses::UI::POE -clear_on_exit=>1,-color_support=>1, inline_states => { _start => sub { $_[HEAP]{follower}=POE::Wheel::FollowTail->new(Filename=>'/var/log/messages',InputEvent=>'new_line',SeekBack=>8192); ($_[HEAP]{tview}=$_[HEAP]->add('win1','Window')->add('text','TextViewer',-wrapping=>1,-width=>-1,-height=>-1))->focus; $_[HEAP]->set_binding(\&exit,"q"); $_[HEAP]{lines}=[]; }, new_line=>sub { unshift @{$_[HEAP]{lines}}, $_[ARG0]; @{$_[HEAP]{lines}}>MAX_LINES && pop @{$_[HEAP]{lines}}; $_[HEAP]{tview}->text(join("\n", @{$_[HEAP]{lines}})); $_[HEAP]{tview}->draw; # btw, is this correct or i should use some other method? } }; $cui->mainloop