Хм, если бы мне пришлось это сделать, я бы сделал так:
use warnings;
use strict;
my @stuff = (
{
search => "this",
replace => "that",
modifier => "g",
},
{
search => "ono",
replace => "wendy",
modifier => "i",
}
);
$_ = "this ono boo this\n";
for my $h (@stuff) {
if ($h->{modifier} eq 'g') {
s/$h->{search}/$h->{replace}/g;
} elsif ($h->{modifier} eq 'i') {
s/$h->{search}/$h->{replace}/i;
}
# etc.
}
print;
Существует только так много разных модификаторов, которые вы можете использовать, поэтому я думаю, что это достаточно просто.
Вы можете использовать eval
для этого, но это ужасно грязно.