Wouldn't it be a good solution if the perl6 had a different name?
I mean, suppose that when you install perl6,
it owuld install its binary as /usr/local/bin/perl6,
and a link to it as /usr/local/bin/perl.
Then, it could decide on what kind of code something is
from the name it is started, and the shebang line (which would have
higher privilege then the actual executable name).
As most scripts already have a shebang line (even if
not used by the os, just the switches are read by perl),
this would work with great reliability.
There might still be a mechanism to override this,
such as package in one way, and for example
module or I don't know what in the other way.
(Maybe Larry is affraid to do this as
this would admit that perl6 and perl are a different language.)
Update 2010-04-15: python3 does this now.