Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: Return newest file

by AcidHawk (Vicar)
on Aug 13, 2003 at 06:25 UTC ( [id://283468]=note: print w/replies, xml ) Need Help??


in reply to Return newest file

stat is your friend

From the Perldocs..

Returns a 13-element list giving the status info for a file, either th +e file opened via FILEHANDLE, or named by EXPR. If EXPR is omitted, i +t stats $_. Returns a null list if the stat fails. Typically used as +follows: ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks) = stat($filename); Not all fields are supported on all filesystem types. Here are the mea +ning of the fields: 0 dev device number of filesystem 1 ino inode number 2 mode file mode (type and permissions) 3 nlink number of (hard) links to the file 4 uid numeric user ID of file's owner 5 gid numeric group ID of file's owner 6 rdev the device identifier (special files only) 7 size total size of file, in bytes 8 atime last access time in seconds since the epoch 9 mtime last modify time in seconds since the epoch 10 ctime inode change time (NOT creation time!) in seconds since t +he epoch 11 blksize preferred block size for file system I/O 12 blocks actual number of blocks allocated
Here is a quick and dirty hack of how to do it without using dir..

#! /usr/bin/perl use strict; use warnings; use File::stat; my $dir = $ARGV[0] || "./"; my ($time1, $time2, $returnname); opendir (DIR, $dir) or die "Cannot open $dir: $!\n"; while( my $file = readdir( DIR ) ) { next if $file =~ /^\./; my $sb = stat($file); $time2 = $sb->mtime; if ($time2 > $time1) { $time1 = $time2; $returnname = $file; } #printf "File is %s, size is %s, mtime %s\n", $file, $sb->size, $sb +->mtime; } print "Newest file is $returnname\n";
Note the mtime is returned as an epoc time so if you want yesterdays file all you have to do is subtract 86400 seconds... type stuff...

-----
Of all the things I've lost in my life, its my mind I miss the most.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (3)
As of 2024-04-26 06:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found