On Tue, Jul 20, 2004 at 11:00:39PM -0700, chromatic wrote: : On Tue, 2004-07-20 at 19:35, Luke Palmer wrote: : : > The New Way (tm) to do that would probably be sticking a role onto the : > array object with which you're dealing: : > : > my @foo does separator('//') = (1,2,3,4,5); : > say "[EMAIL PROTECTED]"; # 1//2//3//4//5 : : Shh, no one's let slip the idea of curried roles yet! I'm not even : certain A12 mentioned parametric roles, let alone first-class roles.
Well, A12 did talk about parametric roles, but I glossed over the first-class roles a bit. I didn't want to scare people with $foo does $bar though, of course, there's no reason in principle you shouldn't be able to do that as a run-time operation. You just can't instantiate a role object. The murky area in the middle is, of course, how you specify an initial value aimed at the attributes of a particular role without creating a "real" object containing just those values. Passing around lists of pairs is probably good enough for that, as long as you can keep straight which list of pairs is intended to initialize which roles. Larry