0

我有一个如下所示的字符串:

prop_1=val1 prop_2=val2 prop_3=val3 

我想替换整个标记之一,使字符串看起来像:

prop_1=val1 prop_X=valX prop_3=val3

我努力了

$params =~ s/prop_2=val2/prop_X=valX/ig;

但什么都没有改变。我究竟做错了什么?

4

1 回答 1

2

你误会了。

$params = 'prop_1=val1 prop_2=val2 prop_3=val3';
$params =~ s/prop_2=val2/prop_X=valX/ig;
print "$params\n";

prop_1=val1 prop_X=valX prop_3=val3

你没有证明这个问题。我能想到的唯一可能导致上述失败的是 ifpos($params)不为零,例如,如果您之前可能确实/.../g在标量上下文中使用过,如

if ($params =~ /.../g)   # Bad

请注意,s/(?<!\S)prop_2=val(?!\S)/prop_X=valX/ig这会更好,因为它不会匹配aprop_2=vals

于 2013-04-29T19:58:41.010 回答