poj#!/usr/bin/perl use strict; # use strftime use POSIX qw(strftime); my $logdate = strftime "%Y%m%d", localtime; my $logpath = "c:/temp" # change to suit; # set directory my $dir = "$logpath/$logdate"; # get list of files with mtime in seconds opendir(FD,$dir) or die "$!\n"; my @files = map { [ (stat("$dir/$_"))[9] ,$_ ] } grep !/^\.\.?$/,readd +ir(FD); print "List of files in $dir\n"; for (@files){ print "@$_\n" }; close(FD); # sort latest first sub rev_by_date { $b->[0] <=> $a->[0] }; my @sorted_list = sort rev_by_date @files; print "List of sorted files\n"; for (@sorted_list){ print "@$_\n" }; # shift latest file from front of array my $latestlog = ( shift @sorted_list )->[1]; print "lastest log = $latestlog\n"; #fetching the last modified log my $logfile = "$dir/$latestlog"; open(F,'<',$logfile) or die "Could not open $logfile : $!\n"; # store last message only my $message; while (<F>){ if (/^<START date/){ $message = $_; } else { $message .= $_; } } close(F); print $message; #sendmail($now,$message);
In reply to Re: How to read the last updated lines from a log file
by poj
in thread How to read the last updated lines from a log file
by perladdict
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |