use 5.010; use overload '""' => sub {${$_[0]}}, '+' => sub {bless\do{my$o=${$_[$_[2]]}.$_[1-$_[2]]}}; BEGIN {overload::constant q => sub {bless \do {my $v = $_[0]}}} my $x = "Hello"; my $y = "world"; my $z = "" + uc $x; say $x + ", " + $y; say $z + $z; __END__ Hello, world HELLOHELLO