Tor Hildrum wrote: > > #!/usr/bin/perl -w > use strict; > use warnings; > > print "What file do you want to open?\n"; > chomp(my $openfile = <STDIN>); > print "What file do you want to write to?\n"; > chomp(my $outfile = <STDIN>); > print "What do you want to replace in the first file?\n"; > chomp(my $pattern = <STDIN>); > print "What do you want to replace it with?\n"; > chomp(my $replace = <STDIN>); > > open (INFILE, "$openfile") or die "Can't open $openfile: $!\n"; > open (OUTFILE, ">$outfile") or die "Can't open $outfile: $!\n"; > > while (<INFILE>) { > if ($_ =~ /$pattern/i) { > s/$pattern/$replace/; > print OUTFILE $_; } > else { > print OUTFILE $_; } > } > > The script is pretty self-explanatory. > The problem is that it is only replacing the first match on each line. > Is there a way to do this with regex? > I think I could do something like: while($_ =~ /$pattern/i) {replace the > lines}. But, I was wondering if this could be handled within my if-else > structure?
what you want is /g for global, /i is for case insensitive look at perldoc perlre for a list and explanations. /Jon > > -- > T. > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]