Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: comparing files based on timestamps

by Marshall (Canon)
on Apr 02, 2009 at 08:19 UTC ( #754890=note: print w/replies, xml ) Need Help??


in reply to Re: comparing files based on timestamps
in thread comparing files based on timestamps

This is a very good idea. item 9 from the list slice is the mtime. This line will produce something like:
Mon Nov 12 23:21:31 2007. If you want to get some numbers to make comparison easier, continue using list slice like this:
(my $m_time) = (stat($source_path))[9]; my ($i_wday, $i_month, $day, $year) = (localtime($m_time))[6,4,3,5];
Only create the variables of interest to you. If you don't need the day of week, then don't use index 6. Note that months will wind up being 0-11 and year is real year-1900. Also note that the slice values don't have to be in order. I organize the lvalues then figure out the order of the slice values. It is not possible for the slice values in ".." sequence to go backwards 4..6 works but 6..4 doesn't work, at least with the versions of Perl I use.

Update: I would keep the values as UTC rather than localtime like above use gmtime. Strangely enough if I remember right, gmtime and timegm are in Time::Local; so if my memory is right, watch out for that!

Little tired today but also consider converting to epoch seconds.

#remember for timegm month[0-11] and year is delta from 1900 my $time = timegm(0,$minutes,$hours,$days,$month-1,$year-1900); print "epoch seconds $time\n";
This gives a single integer value that is easily compared.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://754890]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2023-06-05 10:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How often do you go to conferences?






    Results (24 votes). Check out past polls.

    Notices?