基本的に、オブジェクトからの関数呼び出しから返されるものに置き換えようとしています。しかし、引数として正規表現検索からの戻り値が必要です。少し注意が必要ですが、コードはそれ自体を物語っているはずです。
while ( $token =~ s/\$P\(([a-z0-9A-Z_]+)\)/$db->getValue("params", qw($1))/e ) { }
私が得ているエラーは、$ 1が何にも評価されていない(引数が文字通り「$ 1」になる)ため、getValue()メソッドを台無しにすることです。
乾杯