You say you want to "compare file time stamps", but you don't say what the goal is. Based on looking at your "compare" sub, it would seem that you are trying to identify the most recent file in a directory.

First, you have to remember that readdir returns every directory entry, including "." and ".." (which are directories, as you must know, and which could often, by coincidence, be dated more recently than any data file in the directory).

If you want to pick the most recent entry in a directory (not including "." or ".."), then try something like this:

#!/usr/bin/perl use strict; use File::Spec; my $Usage = "Usage: $0 pathname\n"; die $Usage unless ( @ARGV == 1 and -d $ARGV[0] ); my $path = shift; opendir( D, $path ) or die "$path: $!\n"; my %files; for my $file ( grep !/^.{1,2}$/, readdir D ) { my $filepath = File::Spec->catfile( $path, $file ); my $file_age = -M $filepath; $files{$file_age} = $file; } my @age_order; push @age_order, $files{$_} for ( sort {$a<=>$b} keys %files ); print "Newest file in $path is: $age_order[0]\n";
In that version, you just have to provide the directory path as a command line arg; it uses -M (as suggested by toolic below) to get the age of each file (as a floating point value, in days) relative to the time when the script starts running.

In reply to Re^2: Compare script by graff
in thread Compare script by TheRedcoat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.