【发布时间】:2014-08-27 19:04:44
【问题描述】:
my $re = 's/foo/bar/g';
my $x = 'one two foo';
$x =~ $re;
如何做到这一点?
my $re1 = 'foo';
my $re2 = 'bar';
my $x = 'one two foo';
$x =~ s/$re1/$re2/g;
...不是我的解决方案!非常感谢。
【问题讨论】:
my $re = 's/foo/bar/g';
my $x = 'one two foo';
$x =~ $re;
如何做到这一点?
my $re1 = 'foo';
my $re2 = 'bar';
my $x = 'one two foo';
$x =~ s/$re1/$re2/g;
...不是我的解决方案!非常感谢。
【问题讨论】:
您可以在匿名函数中使用替换,
my $re = sub { s/foo/bar/g for @_ };
my $x = 'one two foo';
$re->($x);
【讨论】:
eval
s/foo/bar/g 是常量,但我需要它作为变量,因为它应该是动态生成的。
my $re = eval "sub { $regex for \@_ }";