Usage of a reference is no option because too many existing files are manipulating the scalar itself.
Not sure what you're saying. As moritz explicitly pointed out, it's the string (or more precisely, the SV) that's getting the blessing, not the reference. It's just that bless needs a reference as argument.
Maybe this will convince you that the blessing is associated with the SV itself:
$ perl -MDevel::Peek -we 'my $s = "foo"; bless \$s, "bar"; Dump $s'
SV = PVMG(0x7acff0) at 0x790610
REFCNT = 1
FLAGS = (PADMY,OBJECT,POK,pPOK)
IV = 0
NV = 0
PV = 0x7826d0 "foo"\0
CUR = 3
LEN = 8
STASH = 0x7877c0 "bar"
|