I thought this would work to make a copy of @x but with the role
"LookInside" attached to it:
my @y = @x but LookInside;
But that didn't add the role to @y. E.g.
say @y.^WHAT
Would just report (Array), not (Array+{LookInside}).
I found that this would do what I was trying to do though:
my @y = @x;
@y does LookInside;
I didn't think there would be any difference between the two
though. What am I not getting?
The full code looks like this:
trial_introspect.pl6:
use v6;
use Trial::Introspect;
my @x = <wuhn tew thuree foah fahv sex>;
my @y = @x;
@y does LookInside;
say "Methods: ";
say @y.methodical_methods;
.../Trial/Introspect.pm6:
role LookInside {
method methodical_methods {
self.^methods.map({ .gist }).sort.unique.map({ "$_\n" }).grep({
! /^Method/ });
}
}