#!perl -w use strict; use Win32::OLE qw(in); # configure this for your starting directory/path my $start = "c:\\temp"; sub visit { my $file = shift; # broken!!! # ...logic here to check date of file, and print it; # just don't forget that it's a "Windows" object, not a # file descriptor or file/path or something else... #if ( $file->DateLastModified > 3 ) { print $file->name . "\n" } } my $fso = Win32::OLE->new("Scripting.FileSystemObject"); sub scan_directory { my $path = shift; print "Scanning $path...\n"; my $folder = $fso->GetFolder($path); foreach my $subdir ( in $folder->SubFolders ) { scan_directory($path . "\\" . $subdir->Name); } foreach my $file ( in $folder->Files ) { visit($file) } } scan_directory($start);