http://qs321.pair.com?node_id=378266


in reply to Re: -M file test operator
in thread -M file test operator

Hi Beable I ran it a couple of times, These are the values I got: # Using $mtime = (-M $logfile); MTIME: 1.15740740740741e-05 MTIME: 0.000104166666666667 Thanks for your reply. bayruds

Replies are listed 'Best First'.
Re^3: -M file test operator
by beable (Friar) on Jul 29, 2004 at 06:04 UTC

    Hi Bayruds, here is a program to find out how old the log file actually is. It turns out that we are talking about 1 to 9 seconds old. Is that too old for you? If that seems like a reasonable age, I'd suggest you change your "-M" test line to something like:

    # see if the file is more than about one hour old if (-M $logfile > 0.042) { ... }

    Here's the program. Somebody will probably produce a one-liner to do this now.

    #!/usr/bin/perl use strict; use warnings; my $secs_per_day = 60 * 60 * 24; while (my $line = <DATA>) { chomp $line; if ($line =~ m/MTIME:\s+(.*)/) { my $time = $1; my $secs = $time * $secs_per_day; print "$time days is $secs second(s)\n"; } } __END__ Output: 1.15740740740741e-05 days is 1 second(s) 0.000104166666666667 days is 9.00000000000003 second(s) __DATA__ MTIME: 1.15740740740741e-05 MTIME: 0.000104166666666667