0: sub seval
1: {
2: my ($sub) = shift;
3: $vni++;
4: $sub =~ s#s/([^/]+)/([^/]+)/(.+)#s/\1/\$i$vni++ == \3 ? \2 : \$&/egs#;
5: return $sub;
6: }
7:
8: # Evals 's/foo/$i1++ == 1 ? bar : $&/egs', replacing match 3 only
9: eval(seval("s/foo/bar/2"));
In reply to Emulate sed's s/// numeric flag by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |