正規表現で置換文字列として使用したい属性を含む Perl Moose オブジェクトを取得しました。アイデアは、次のようなものを使用することです:
$full_string =~ s{FIND_THIS}{$self->replace_string};
$self->replace_string
使用する Moose オブジェクトの属性はどこにありますか。上記のように実行すると、期待どおりに動作しません。正規表現エンジンは、'$self' が変数であり、'->' 矢印が単なる文字列であると認識しています。属性の値の代わりに、置換の出力は次のようになります。
ObjectName=HASH(0x7ff458f70778)->replace_string
これを克服する簡単な方法は、文字列を新しい変数にドロップすることです。例えば:
my $new_replace_string = $self->replace_string;
$full_string =~ s{FIND_THIS}{$new_replace_string};
私の質問は、新しい変数の作成を回避し、オブジェクトの属性を直接使用する方法があるかどうかです。(そして、理想的には、コード行を追加する必要はありません。) これは可能ですか?