open(FH, "wrongs") or die $!; open(FH2, ">wrongs2") or die $!; while ($line = ) { $line =~ s/wrongs/wrongs3/; print FH2 "$line"; } close (FH); close (FH2); #### perl -lpe 's/wrongs/wrongs3/' wrongs >wrongs2 #### perl -lpi -e 's/wrongs/wrongs3/' wrongs #### perl -lpe "s/wrongs/wrongs3/" wrongs >wrongs2 #### perl -lpi.bak -e "s/wrongs/wrongs3/" wrongs #### perl -lpi '$c++ if s/wrongs/wrongs3/; END{warn "count=$c\n"}' wrongs #### $ time perl -lpe '$c++ if s/sex/cool/; END{warn "count=$c\n"}' gse1.log >/dev/null count=2840 real 0m19.062s user 0m16.736s sys 0m0.940s #### perl -lpi '$c+=s/wrongs/wrongs3/g; END{warn "count=$c\n"}' wrongs #### perl -lpi 's/wrongs($c++)/wrongs3/g; END{warn "count=$c\n"}' wrongs