Interesting discussion. Perl 6 will not need to encourage people to define their own .can
. Here's a paragraph from A12:
By the way, unlike in Perl 5 where .can returns a single routine
reference, Perl 6's version of .meta.can returns a "WALK" iterator
for a set of routines that match the name. When dereferenced, the
iterator gets fed to a dispatcher as if the method had been called
in the first place. Note that any wildcard methods (via delegation
or AUTOLOAD) are included in this list of potential handlers, so
there is little reason for subclasses to have to redefine .can to
reflect the new names. It does weaken the meaning of .can from
"definitely has a method of this name" to "definitely has one or
more methods in one or more classes that will try to handle this."
But that's probably closer to what you want, and the best we can do
when people start fooling around with wildcard methods under MI.
Also, we're making a clean separation between AUTOLOAD
, which does "wildcard" methods, and
, which may only supply a definition for predeclared (stubbed) methods or subroutines. (The delegation syntax
also makes a clear distinction between those methods we know the
name of in advance and those we don't.)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
Outside of code tags, you may need to use entities for some characters:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||