I originally thought that $var.^methods gave you a list of all available methods on $var, but it looks like it doesn't (always?) report on inherited methods.
my $stringy = '3.14159'; say $stringy.^name; # Str say $stringy.^mro; # ((Str) (Cool) (Any) (Mu)) The list returned from checking $stringy is the same as just checking (Str): $stringy.^methods (Str).^methods And it includes none of the (Cool) methods: (Cool).^methods For example, trig functions like "cos" are part of the (Cool) list, but are not in the $stringy.^methods list, though you can call clearly them: say $stringy.cos -0.9999999999964793 I guess this seems to work to give you the full list of available methods: $stringy.^methods(:all)