Re: open > file && s/ / /;
- From: krahnj@xxxxxxxxx (John W. Krahn)
- Date: Wed, 27 Jul 2005 13:46:30 -0700
Brian Volk wrote:
> Hi all,
Hello,
> Can someone pls take a look at the script below and explain what I'm doing
> wrong.. The script runs w/out errors but the substitution is not working..
> Hopefully the note below will be enough info..
>
> I was able to print the file names that I wanted but once I tried to open
> the file and s / / /; the wheels fell off.. :~)
>
> I think I can open a file this way....? Pls explain what I am doing
> wrong....
> Thank you!
> ---------------------------------
> #!/usr/local/bin/perl
>
> use strict;
> use warnings;
>
> # dir w/ text files containing text and links
> my $dir = "J:/flash_host/ecomm/descriptions/product/small";
>
> # a text file that has the file names which contain broken links
> my $bad_file = "c:/brian/spartan/bad_links.txt";
>
> open BAD, "< $bad_file" or die "Can't read $bad_file: $!\n";
>
> # name each record in $bad_file => $file
> while (my $file = <BAD>) {
> chomp $file;
>
> if (-e "$dir/$file") {
>
> # open the text file w/ a bad link and sub "http://..." w/ a local
> file
> open BADFILE, "> $dir/file" or die "Can't open $dir/$file for replace:
> $!\n" &&
> s & http://.* & descriptions/product/MSDS/$file &;
> close BF
> }
>
> }
> -----------------------------------
Perl provides some shortcuts to allow you to do what you want:
#!/usr/local/bin/perl
use strict;
use warnings;
# dir w/ text files containing text and links
my $dir = 'J:/flash_host/ecomm/descriptions/product/small';
# a text file that has the file names which contain broken links
my $bad_file = 'c:/brian/spartan/bad_links.txt';
open BAD, '<', $bad_file or die "Can't read $bad_file: $!\n";
# store the files to "edit" in @ARGV
@ARGV = map { chomp; "$dir/$_" } <BAD>;
# set the in-place edit variable
# cannot be '' on Windows
$^I = '.bak';
# modify the files and save the originals with .bak extention
while ( <> ) {
s & http://.* & descriptions/product/MSDS/$file &;
print;
}
__END__
John
--
use Perl;
program
fulfillment
.
- References:
- open > file && s/ / /;
- From: Brian Volk
- open > file && s/ / /;
- Prev by Date: RE: Help: automated email forwarding similar to .forward
- Next by Date: Re: IF statements and modules - do they mix?
- Previous by thread: open > file && s/ / /;
- Next by thread: RE: open > file && s/ / /;
- Index(es):
Relevant Pages
|