To follow up on Jurgen Exner's critique, I present Xah Lee's version, and then my rewritten version.
"Xah Lee" <[EMAIL PROTECTED]> writes: > if (scalar @ARGV != 4) {die "Wrong arg! Unix BNF: $0 <sstr> <rstr> > <file id1> <file id2>\n"} > $stext=$ARGV[0]; > $rtext=$ARGV[1]; > $infile = $ARGV[2]; > $outfile = $ARGV[3]; > open(F1, "<$infile") or die "Perl fucked up. Reason: $!"; > open(F2, ">$outfile") or die "Perl fucked up. Reason: $!"; > while ($line = <F1>) { > chomp($line); > $line =~ s/$stext/$rtext/g; > print F2 "$line\n"; > } > close(F1) or die "Perl fucked up. Reason: $!"; > close(F2) or die "Perl fucked up. Reason: $!"; #!/usr/bin/perl use warnings; use strict; if (@ARGV != 4) { die "Wrong arg! Unix BNF: $0 <sstr> <rstr> <file id1> <file id2>" } my ($stext, $rtext, $infile, $outfile) = @ARGV; open my $infh, '<', $infile or die "Error opening input file [$infile]: $!"; open my $outfh, '>', $outfile or die "Error opening output file [$outfile]: $!"; while(<$infh>) { s/$stext/$rtext/g; print { $outfh } $_; } close($infh) or die "Error closing input file [$infile]: $!"; close($outfh) or die "Error closing output file [$outfile]: $!"; My version takes up more lines, but I don't count whitespace-- whitespace is not expensive, and when used properly adds greatly to the readability of your program. I've set followups to the only appropriate group for Mr. Lee's postings. -=Eric -- Come to think of it, there are already a million monkeys on a million typewriters, and Usenet is NOTHING like Shakespeare. -- Blair Houghton. -- http://mail.python.org/mailman/listinfo/python-list