I use a variable which have a method overload to string in regex replace.
the result is string only if match success. I thought it should be always
string.
Could anyone explain how this happen? Thanks.
Below is the code
use Text::Xslate::Type::Raw; # a wraper of string, provide as_string, which
is overloaded to string, return the string.
use DDP;
sub strip_x { return $_[0]=~s/x//gr }
my $raw_a = Text::Xslate::Type::Raw->new("aaaaa");
p $raw_a;
my $striped_a = strip_x($raw_a);
p $striped_a;
my $raw_b = Text::Xslate::Type::Raw->new("bbbbx");
p $raw_b;
$striped_b = strip_x($raw_b);
p $striped_b;
__END__
Text::Xslate::Type::Raw {
public methods (3) : (), as_string, new
private methods (0)
internals: "aaaaa"
}
Text::Xslate::Type::Raw {
public methods (3) : (), as_string, new
private methods (0)
internals: "aaaaa"
}
Text::Xslate::Type::Raw {
public methods (3) : (), as_string, new
private methods (0)
internals: "bbbbx"
}
"bbbb"