#!/usr/bin/perl -w reg.pl my ($p, @q, $matchchar, $nummatch, $rep, $count, $q, $out); $p = 'Terrence and Phillip are sweet'; $count = 0; $matchchar = "e"; $nummatch = 3; $repchar = "1"; @q = split (/(.*?)/, $p); for($i = 0; $i < $#q + 1; $i++) { $_ = $q[$i]; $count += 1 if (/$matchchar/); if (/$matchchar/ && ($count > $nummatch)) { $q[$i] = $repchar; } } $out = join ("", @q[0 .. $#q]); print "out === $out";