Hi All,
 
The first time I wrote this if else statement I wrote it correctly...  now
I've confused myself... :~)  
 
If the "if" statement returns false the program writes that line in the file
to $error_log for every $file in the directory....  I just what the line in
the file to be written one time... not one time for every file in the
directory...  Perl is doing exactly what I have written...  It's just not
what I want..  :~)
 
foreach line in the txtfile, match a file in the directory....print file.
...else print the line item in txtfile to the error_log.... 
 
How do I write the code so the line item only prints to the error_log one
time?
 
 
my $file_dir = "F:";
opendir(DIR, $file_dir) or die "Can't open the $file_dir: $!\n";
 
my @files = readdir(DIR) or die "Unable to read current dir:$!\n";
closedir(DIR);
 
my $orders_dir = "c:/orders";
 opendir (ORDERS, $orders_dir) or die "Can't open $orders_dir: $!";
 
@ARGV = map { "$orders_dir/$_" } grep { !/^\./ } readdir ORDERS;
 
while (<>) {
     chomp;
 
foreach my $file (@files) {
     my $error_log = "c:/brian/test/no_file.txt";
  open (NOFILE, ">> $error_log") or die "can't open $error_log:$!\n";
 
if ($_ eq $file) {
print $file;
 
 
####  This is printing $_ to the error_log one time for every file in the
directory
#### I just want it to print to the error_log one time if there is not a
match in the directory. 
 
 } else {
        print NOFILE "\n";   
       } 
}
 
closedir (ORDERS);
 
 
Thanks for your help!  
 
Brian Volk
HP Products
317.298.9950 x1245
 <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]
 
 

Reply via email to