use Posix; use Utils; $now = localtime(); %months = ("jan"=>1,.... "Dec"=>12); @now = split(" ",$now); $month $months{$now[1]}; $year = $now[-1]; $date = $now[-2]; $month = sprintf("%2d",$month); $date = sprintf("%2d",$date); $logdate = "$year$month$date"; $logpat = "xxxx"; opendir(FD,"$logpath\20130507.log") or die "$!\n"; @folders = map { [stat "$logpath/$_",$_] } grep (!/^\.\.?$/,readdir(FD); close(FD); #fetching the last modified log sub rev_by_date { $b->[9] <=> $a->[9] } @sorted_list = sort rev_by_date @folders; @newlist = @{$sorted_list[0]}; $latestlog = pop(@newlist); $log = "$logpath\$latestlog"; open(F,"$log") or die "$!\n"; @logcontent = ; close(F); sendmail($now,\@logcontent); sub sendmail { my($recdate,$content) = @_; my @list = @$content; my $mail_body; my $ToEmailAdd = "xxxx.com"; my $subject = "Server archival completed"; my $from = "xxxx"; my $email_body = "some String"; $email_body .= "@list" . \n";; $osmtp = Net::SMPT->new("xxxx.com",Timeout =>60); $osmpt->mail($from); $osmpt->to($ToEmailAdd); $osmpt->date(); $osmpt->datasend("From: $from"); $osmpt->datasend("To: $TOEmailAdd"); $osmpt->datasend("Subject: $subject"); $osmpt->datasend("body: $email_body"); $osmpt->quit;