Hello atcroft,
The only way I can find to do this is to pull the substitution apart into its component steps and perform these separately:
#! perl use strict; use warnings; my $c = q{asdfghjk}; my @regex = ( { lh => q{(gh)}, rh => q{__$1__}, }, { lh => q{(h_)}, rh => q{_h!$1!}, }, ); print q{Original: }, $c, "\n"; for my $i (0 .. $#regex) { if ($c =~ /$regex[$i]{lh}/) { my $s = $1; my $d = $regex[$i]{rh}; $d =~ s/\$1/$s/; $c =~ s/$regex[$i]{lh}/$d/; } } print q{Final: }, $c, "\n";
Output:
17:37 >perl 1352_SoPW.pl Original: asdfghjk Final: asdf__g_h!h_!_jk 17:39 >
This is far from elegant, and I keep thinking there must be a simpler way involving s///ee — but I haven’t found it.
Anyway, hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^2: Regex stored in a scalar
by Athanasius
in thread Regex stored in a scalar
by OtakuGenX
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |