overload
これは普通に文字列参照のoverloadでいいんじゃない?
use strict;
use warnings;
{
package NDOString;
use overload (
q{""} => sub { shift->stringify },
);
sub new {
my ($class, $str) = @_;
bless { string => $str }, $class;
}
sub stringify {
shift->{string};
}
}
my $str = NDOString->new('blah blah');
$str =~ s/a/u/g;
print $str;
こんな感じで。