Я на самом деле Наблюдаю за каталогом для создания новых файлов (.log-файлов), эти файлы сгенерированы каким-то инструментом, а инструмент записывает записи журнала через некоторое время создание того же файла, за это время файл будет пустым.Как я могу подождать, пока что-то не будет записано в файл журнала в моем скрипте perl
и как я могу ждать, пока что-то записывается в журнал и разум, основываясь на записях журнала я буду ссылаться другого скрипта !,
use strict;
use warnings;
use File::Monitor;
use File::Basename;
my $script1 = "~/Desktop/parser1.pl";
my $scrip2t = "~/Desktop/parser2.pl";
my $dir = "~/Desktop/tool/logs";
sub textfile_notifier {
my ($watch_name, $event, $change) = @_;
my @new_file_paths = $change->files_created; #The change object has a property called files_created,
#which contains the names of any new files
for my $path (@new_file_paths) {
my ($base, $fname, $ext) = fileparse($path, '.log'); # $ext is "" if the '.log' extension is
# not found, otherwise it's '.log'.
if ($ext eq '.log') {
print "$path was created\n";
if(-z $path){
# i need to wait until something is written to log
}else{
my @arrr = `head -30 $path`;
foreach(@arr){
if(/Tool1/){
system("/usr/bin/perl $script1 $path \&");
}elsif(/Tool1/){
system("/usr/bin/perl $script2 $path \&");
}
}
}
}
my $monitor = File::Monitor->new();
$monitor->watch({
name => $dir,
recurse => 1,
callback => {files_created => \&textfile_notifier}, #event => handler
});
$monitor->scan;
while(1){
$monitor->scan;
}
В основном я оглавлению часть важной информации из журналы.
Вы читали что-то о опросе через дескрипторы файлов? – red0ct
@ red0ct Нет! ссылка на такую информацию будет полезна – Shantesh
Может ли [Файл :: Монитор] (http://search.cpan.org/~andya/File-Monitor-1.00/lib/File/Monitor.pm) быть разумным вариантом? – eballes