您如何调用名称为变量的函数?

Ant*_*ado 9 syntax function perl6

我正在尝试使用此语法来调用函数"$name"()。我知道这适用于方法,但是如果有一种方法可以使用模块中的函数来执行此操作,则不会。

我已经尝试过此=> sub b(){say "b";}; "b"();,但是它不起作用。

任何的想法?

Ant*_*ado 8

@sena_kun通过Perl6 IRC频道回答了我,看来正确的语法是:sub b(){say "best" }; ::('&b')();

如您所见,它看起来像“魔术”,因此,@ sena_kun告诉了我这种更容易理解的方式: sub a {1.say}; sub b {2.say}; my @a = &a, &b; for @a -> &f { &f()}

  • `::(...)`并不是神奇的-它所做的只是在运行时(而不是在编译时)查找包含的符号,然后示例将其作为带有(()`的子例程调用。更为“易懂”的方式根本不同-它要求在编译时就知道这些符号。 (3认同)
  • 您也可以使用`&::('b')` (3认同)