#!/usr/bin/perl use warnings; use strict; use File::Basename; # # find all files in a directory that end in .txt and how old they are. # my $directory = shift; my $script = basename($0); die("USAGE: $script \n") unless (defined($directory)); my $file_pattern = qr/\.txt$/i; opendir DIR, $directory or die("Cannot open directory $directory\n"); while( my $file = readdir(DIR) ) { # # skip any file that does not satisfy our selection criterion. # next unless $file =~ $file_pattern; # # http://perldoc.perl.org/perlfunc.html for info # on -X functions. # my $age = -M $file; my $age_string = sprintf "%6.2f", $age; $age_string =~ s/^\s+//; printf "File %s is aged %s days.\n", $file, $age_string; if ( $age > 30.0 ) { print "move file $file here."; } } closedir(DIR); #### C:\Code>perl find_old_txt_files.pl "C:/Code" File Challenging-Generals.txt is aged 4.84 days File Chasing-Clam.txt is aged 0.79 days. File GMvietnam.txt is aged 1.00 days. File Tap-Into-Melons.txt is aged 0.07 days. C:\Code>