0

基本上我试图用从对象的函数调用返回的任何内容替换。但我需要正则表达式搜索的返回值作为参数。这有点棘手,但代码应该不言自明:

while ( $token =~ s/\$P\(([a-z0-9A-Z_]+)\)/$db->getValue("params", qw($1))/e ) { }

我得到的错误是 $1 没有被评估为任何东西(参数实际上变成了“$1”),所以它搞砸了我的 getValue() 方法。

干杯

4

1 回答 1

5

函数引用“qw()单词”。即它在所有空白字符处拆分一个字符串并返回该列表。它插值。

您可以“按原样”使用变量:

s/\$P\(([a-z0-9A-Z_]+)\)/$db->getValue("params", $1)/e

qw()功能很不一样

  • q(abc) (<=> 'abc'),
  • qq(abc)(<=> "abc"), 和
  • qx(abc)(<=> `abc`) 或
  • qr(abc)(<=> m/abc/):

qw(a b c)<=>('a', 'b', 'c')

于 2012-09-21T00:58:57.003 回答