use IO::Select; open my $file, '<', 'tail' or die $!; my $select = IO::Select->new( $file ); while (my @ready = $select->can_read ) { for my $fh (@ready) { while ( sysread $fh, my $buff, 100 ) { syswrite STDOUT, $buff; } } } close $file;