Web lists-archives.com

Re: perl; Trying to get File::stat to work




It looks like this has to do with mixing the usage of the "native" stat of Perl with the "object" version from File::stat.

The 'stat' from File::stat returns a reference to an object, which has the stuff you're wanting, tucked away internally as object variables.  You need to do:

    use File::stat;

    $statRef = stat('testfile');

    $mtime = $statRef->mtime ()

Hoping this helps.

Bob

On 10/19/18 7:47 PM, Martin McCormick wrote:
I am a member of a perl discussion list but it seems to have gone
away so I hope somebody here can give me an idea as to why the
stat function is not working.

	Create a file called testfile in your working directory
and then run the following perl script:

#!/usr/bin/perl -w
use strict;
use warnings::unused;
use File::stat;
use File::Spec;

my $last_update_time;

$last_update_time = ( stat("testfile") )[9];
printf("%d\n",$last_update_time);

	As this stands, it should print a 10 or so digit number
representing the number of seconds since Midnight UTC on January
1 of 1970.  What it actually does is to not set the variable and
you get the "Use of uninitialized variable" squawk with no
value assignment to the variable.

	The [9] referrs to the ninth element in an array which
should be the time stamp.

Thanks for any suggestions.

	Martin McCormick WB5AGZ