#!/usr/bin/perl ################################################## # # Script: ntail.pl # Purpose: imitate the unix 'tail -f' # Version: 0.1 # Date: 5/05/2008 # # nocopyright (:=X 2008 neuzd, neuzd.org # ################################################## use strict; use warnings; use Time::HiRes qw(usleep); #The only argument needed is the file to be displayed my $f; die "Specify a file\nUSE: ntail.pl \n" unless @ARGV>0; $f=$ARGV[0]; my $lines = 10; open(my $in, "<", $f) or die "Can't open $f: $!"; my @uarr = <$in>; my @tenlines = @uarr[$#uarr-$lines .. $#uarr ]; print "$_" foreach @tenlines; while (<>) { #check every 1 second usleep(1000000); open(my $due, "<", "$f") or die "Can't open $f: $!"; my @darr = <$due>; unless(@uarr == @darr) { my $diff = @darr - @uarr; my @lastlines = @darr[$#darr-$diff .. $#darr]; print @lastlines; open(my $in, "<", "$f") or die "Can't open $f: $!"; @uarr = <$in>; } }