> This topic is actually covered, albeit far less in-depth and lumped with an
> unrelated change, by Nathan Wiger's RFC 103, just in case you weren't aware.

Yeah, I've got to split those up. I was trying cut down on the flood of
RFC's that poor Larry has to sift through :-(, but they are both complex
issues. Schwern, if you want to take this one over, it's all yours.

There has already been some discussion on this here:

http://www.mail-archive.com/perl6-language@perl.org/msg02169.html

I would encourage people to read the thread. In particular, to be truly
consistent we should interpolate class as well as instance methods,
i.e.:

   "Hello, Class->name";

But there's a lot of problems with this and I'm not sure it's a good
idea.
 
> >     print 'Today\'s weather will be '.join($", $weather->temp()).
> >           ' degrees and sunny.';
> >
> > However if temp() calls wantarray(), the result will be FALSE (scalar).
> 
> Ok, this is very confusing.

I think what he's trying to get at is that these should all work the
same:

   print "Here's some @stuff";
   print "Here's some $h->{stuff}";
   print "Here's some $r->stuff";

> >     print 'There is '.$obj->foo(this => $yar, that => 2 + 2). ' in my head.";
> 
> Now perl is parsing full statements within strings.

This already happens with:

   print "Here's some $h->{$stuff}";
   print "Here's some $a->[$stuff + $MIN]";

So it's not that confusing, and quite consistent.

> I'd say keep it simple, allow only simple, non-parenthetical method calls.

No, this makes it impossible to do this:

   print "Your name is $cgi->param('name')";

And it's also inconsistent with how hashrefs and arrayrefs work already.

-Nate

Reply via email to