On 8/4/05, Brian Volk <[EMAIL PROTECTED]> wrote:
> for now it's back to the drawing board and waiting for that light in my head
> to go off!  :~)

Brian,

I took the last script you posted and re wrote it the way I would have
gone about it.  It doesn't use in-place editing, or @ARGV, because I
don't quite grasp how to make that work in this situation.  Anyway,
see if it helps...  I apologize if there are errors, I couldn't
quickly think of a way to test it.

#!/usr/bin/perl

use strict;
use warnings;
use File::Basename;
use File::Copy;

my $pdf_dir = "j:/flash_host/ecomm/descriptions/product/MSDS";
# read file/directory names in that directory into @pdfs
opendir PDFDIR, $pdf_dir 
                        or die "Can't opendir $pdf_dir: $!\n";
my @pdfs = readdir(PDFDIR);
closedir PDFDIR;

my $text_dir = "c:/brian/descriptions/product/small";
opendir TEXTDIR, $text_dir
                        or die "Can't opendir $text_dir: $!";
my @txts = map { "$text_dir/$_" } grep { !/^\./ } readdir TEXTDIR;
closedir TEXTDIR;

my %PDFDIR_LIST;
$PDFDIR_LIST{$_}=1 for @pdfs;

foreach my $text_file (@txts) {
        my ($basename, $suffix) = fileparse($text_file,'.txt');
        my $link = "descriptions/product/small/$basename.pdf";
        
        if( $PDFDIR_LIST{"$basename.pdf"} ) {
                my $out_file = "$textfile.new";
                open INPUT, "< $text_file" 
                                        or die "can't open $text_file: $!";
                open OUTPUT, "> $out_file" 
                                        or die "can't open $out_file: $!";
                
                while (<INPUT>) {
                        s% http://.* % $link %;  # are you sure you don't need 
the g option?
                        print OUTPUT;
                }
                close INPUT; close OUTPUT;
                move( $text_file, "$text_file.bak" );
                move( $out_file, $text_file );
        }
}

__END__

-- 
Adam Wuellner

--
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