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 に答える