Could add the:

grep m/^\d\d\d(\d|\d\d)\d$/ && ! -e "c:\\prod\\rej" . $_ , readdir DIR;

        You need to have the directory location because the readdir returns
only the file or directory name read.

Wags ;) ps Did test and put out files only.

-----Original Message-----
From: Auernheimer, Rebecca (CORP, Consultant)
[mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 20, 2002 15:03
To: [EMAIL PROTECTED]
Subject: filter list of files from directory into array


Hello List,

I am working on my first "real" Perl program.  I am using Active Perl 5.6 on
Windows NT/2000.  So far, I am just trying to read a directory of files into
an array, but only those files that are named with 5 or 6 numbers and no
extension, like 12345 or 654321.  I've got that part down except that I
don't know how to keep another directory out of that array.

###### start code ########
use warnings;
use strict;

opendir (DIR, "c:\\prod\\rej") || die "can't open c:\\prod\\rej: $!";
my @filelist = grep m/^\d\d\d(\d|\d\d)\d$/, readdir DIR;
print ("@filelist");
closedir DIR;
###### end code ########

This works great except it also includes a directory named 11113 that I
created under c:\prod\rej for testing purposes.  I was trying something like
this (don't laugh _too_ hard):

my @filelist = grep { $_ ne -d && m/^\d\d\d(\d|\d\d)\d$/ }, readdir DIR;

but then I would get this error:

syntax error at C:\perl\practice\test.pl line 5, near "},"
Execution of C:\perl\practice\test.pl aborted due to compilation errors.

How do I get that directory out of my array?  I would welcome any
suggestions/critique.

Thank you,
Rebecca



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to