Re: RFC 174 (v1) Parse C<func($obj, @args)> as C<func $obj (@args)>
[email protected] (Tom Christiansen) Wed, 30 Aug 2000 17:38:54 -0600
| Newsgroups | perl.perl6.language.subs |
|---|---|
| Message-ID | <23661.967678734@chthon> |
>So this:
> my $class = "My::Class";
> print("$class");
>is:
> main::print("My::Class");
Oh, I don't know. *If* you assume that f(x) is always x->f(), then,
it would invoke some STRING::print method--being there as one would
be in an all-the-world's-an-object world. I suppose maybe
that's STRING->print("My::Class") or maybe SCALAR->... instead.
Currently, of course, there is no "main::print". And whether
CORE::print is a real function is quite open to debate.
>but this:
> my $class = "My::Class";
> print($class);
>is:
> My::Class->print();
Likewise, if there are no function calls, and f(x) is x->f, then
print($class) is really $class->print(), then yes, that's
My::Class->print("My::Class"), or barring inheritance,
My::Class::print("My::Class").
I'm truly not clear on what you're yucking there. That an invocant
that is not a class or object should end up calling a general print
function? Would you be any happier if one were to permit UNIVERSAL
methods on "invalid" invocants, making that UNIVERSAL::print instead
of CORE::print?
--tom