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)

Reply via email to