I don't like that change. It adds more to the syntax confusion than it takes away. If I'm pushing values into an array, I expect the argument to be some kind of array. It feels natural in Perl. All those sigil-mangling changes (and I'd like to include Perl6's sigil immutability here) stray from that (relatively simple) direction.

Automatic dereferencing syntax (meaning: s/@$/@/ or s/@{$ref}/@ref/) would be more useful. For example:

I'm aware that this is special case for those core functions operating on arrays. So, it's not so hard to track it at all, I think.

Actually, I don't understand why we need such syntax simplifications it they're not done through all the Perl. Changing Perl philosophy in one place, and not changing it in another is inconsistent and wrong. For example, we still don't have saner defaults for simple object-oriented programming although it is relatively simple to patch the core as demonstrated before on p5p.

I don't think so (if you expect that would be equivalent to push $arref1, @$arref2), because it's ambiguous (do you want to push the ref $arref2 itself or the array's elements?), while the current change isn't. Only the programmer can resolve that ambiguity...