in reply to Can't get my filename pattern matching working....can anyone help?!

The easiest approach is to get all files and throw away those filenames you don't want. This sample code doesn't do everything you would like but does show a throwaway method.

#!/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 <target_directory> \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);
And the output is:

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>