On Tue, Dec 28, 2004 at 10:31:37PM -0800, Ashley Winters wrote:
: On Tue, 28 Dec 2004 22:31:47 -0700, Luke Palmer <[EMAIL PROTECTED]> wrote:
: > Ashley Winters writes:
: > > sub foo (Class $who) {
: > >     my $thing := $who<$var>;
: > >     my &func := $who<&func>;  # how would I do this otherwise?
: > > }
: > 
: > In current Perl 6:
: > 
: >     sub foo (Class $who) {
: >         my $thing := $::($who)::var;
: >         my &func  := &::($who)::func;
: >     }
: 
: Okay, I see. S10 says ::() is the catch-all symbolic naming syntax.
: However, $who would be a reference to a class object itself. Does it
: automagically accept hard-references, or would Class objects have to
: stringify to their global ::*::ClassName?
: 
: More to the point, is %::(%foo) an identity op?

We will probably make hard refs work inside ::() just to make it easier
to translate Perl 5 to Perl 6.  But possibly it should require a laxity
pragma to enable it.  If we end up with people simply writing $::($x)
everywhere instead of ${$x}, we haven't gained anything over Perl 5,
and we've lost strict refs.  I don't want people to get in the habit
of using ::() for hard refs unless they explicitly want symbolic refs
as well.  I was hoping that the mere length of $::() over ${} would
be enough to discourage that kind of thinking, but now I'm not so sure.

Larry

Reply via email to