in reply to Unifying namespaces of @name and $name to simplify dereferencing?
Have you looked at Perl6::Variables ? It appears to provide the implicit dereferencing you want - at least when accessing elements of an array/hash. (Along with other Perl6 variable related syntax.)
By itself, it does not enforce single type use of symbol names, but that could be done with another module.
Update: Looking at it more, it doesn't attempt to translate @array to \@array so passing an array ref or assigning to a scalar still requires using \@array - but, once passed or assigned, $second = $aref[1] will work.
However, even with a means to enforce single type use of symbol names, I still question whether implicit dereferencing in Perl5 would always be safe.
Note: Perl6 has explicit dereferencing as well, using . instead of ->
|
|---|