我有一个 Perl Moose 对象,其中包含我想在正则表达式中用作替换字符串的属性。这个想法是使用类似的东西:
$full_string =~ s{FIND_THIS}{$self->replace_string};
Moose 对象的属性在哪里$self->replace_string
使用。如上所述运行时,它不能按预期工作。正则表达式引擎认为 '$self' 是变量,而 '->' 箭头只是一个字符串。而不是属性的值,替换的输出最终看起来像:
ObjectName=HASH(0x7ff458f70778)->replace_string
我知道克服这个问题的一个简单方法是将字符串放入一个新变量中。例如:
my $new_replace_string = $self->replace_string;
$full_string =~ s{FIND_THIS}{$new_replace_string};
我的问题是是否有办法避免创建新变量而直接使用对象的属性。(而且,理想情况下不必添加一行代码。)这可能吗?