On Jul 22, Brian Volk said:

I have two text files and I have a directory of .pdf files that are named
00020.pdf 00035.pdf 00040.pdf 00067.pdf. ( same as records in file_2 ) What
I need to do is look at each record in file_2 and see if the .pdf file
exist..  if so copy that file to a new directory and rename it to the
corresponding record in file one  for example; the first value 00020 would
be renamed ( if file exits ) to 70624.pdf and the second value 00020 would
be renamed 70280.pdf ...Which would actually be the same .pdf file just w/ a

If the PDF files are in a given directory (and not hidden in various locations further down that directory's subdirectories) then you won't need File::Find. I would also be a little wary of renaming files as File::Find was operating. I personally don't know if that would have an effect, but I would stay clear of it myself.

As for your data structures, you *could* create a hash, but I don't think there's necessarily a need for it. Have two parallel arrays isn't so bad in this case. However, the way I see it, you don't need arrays at all.

Here's how I would solve the problem:

  #!/usr/bin/perl

  use strict;    # I was very happy to see
  use warnings;  # you had these in your code

  my $item_file = "c:/brian/spartan/hp_items.txt";
  my $mfg_file = "c:/brian/spartan/mfg_num.txt";
  my $src_dir = "c:/spartan/msds/number";  # source directory
  my $dst_dir = "c:/brian/spartan";        # destination directory

  open ITEM, "< $item_file" or die "can't read $item_file: $!";
  open MFG, "< $mfg_file" or die "can't read $mfg_file: $!";

  while (my $old = <MFG>) {
    my $new = <ITEM>;
    chomp($old, $new);

    if (-e "$src_dir/$old") {
      rename "$src_dir/$old" => "$dst_dir/$new"
        or warn "can't rename $src_dir/$old to $dst_dir/$new: $!";
    }
  }

--
Jeff "japhy" Pinyan         %  How can we ever be the sold short or
RPI Acacia Brother #734     %  the cheated, we who for every service
http://japhy.perlmonk.org/  %  have long ago been overpaid?
http://www.perlmonks.org/   %    -- Meister Eckhart

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to