>Split Scalars and Objects/References into Two Types
I do not see how taking something simple and elegant
and making it complicated does anybody any good.
And yes, I did read all of it.
You pretend that a reference is not a "true" scalar.
That's certainly not valid. It obviously is.
You also don't like not knowing whether
$a + $b
is going to call an overload or not. I don't see why
that matters, or why it should matter. Even if there
were a reference symbol (which I maintain there oughn't be)
you still wouldn't know whether something else would happen.
I happen to strongly appreciate that the invocant in
$a->blah
can be of either sort; that is:
$a = "MyClass";
$a->blah;
or
$a = MyClass->generate();
$a->blah();
In fact, who knows what generate() returned? It could have
been a class name.
There is beauty and power in this transparency, which you would see
obliterated. I don't understand that.
You introduce bizarre *foo[$i] syntax. Why should that be
any different than $foo[$i]?
This is an extremely radical change, one with borad, far-reaching
effects. In fact, this is one that pretty much wormholes off into
a new universe. I don't know that I'd call the result Perl.
Larry did not by accident make references scalars in the first
place, and your motivations for undoing that fail to convince--at
the very least, they fail to convince this reader.
--tom