監視
なんか、こうログファイルの監視とか。
#!/usr/bin/perl use strict; use warnings; use File::stat; sub main { my $pattern = shift; my %file_size; if (not defined $pattern) { $pattern = '*'; } for my $file (glob $pattern) { if (-f $file) { my $st = stat $file or die $!; $file_size{$file} = $st->size; } } while (1) { for my $file (glob $pattern) { next if not -f $file; my $st = stat $file or die; if (not exists $file_size{$file}) { $file_size{$file} = 0; } if ($st->size > $file_size{$file}) { $file_size{$file} = read_to_eof($file, $file_size{$file}); } elsif ($st->size < $file_size{$file}) { $file_size{$file} = read_to_eof($file, 0); } } sleep 1; } } sub read_to_eof { my ($filename, $offset) = @_; open my $fh, '<', $filename or die; binmode $fh; seek $fh, $offset, 0; my $n = 0; my $total = 0; my $str; do { $n = read $fh, $str, 1024 * 1024; print $str; } while ($n > 0); my $cur = tell $fh; close $fh; return $cur; } main @ARGV;