gpt4 book ai didi

perl - 您如何反省 MooseX::Method::Signatures 方法以查看它们采取的论点?

转载 作者:行者123 更新时间:2023-12-02 08:51:42 27 4
gpt4 key购买 nike

我正在使用 MooseX::Declare 和方法,它使用 MooseX::Method::Signatures。假设我有一个类“foo”和一个方法“bar”,我已经实现了它:

class foo {
method bar (Str $str, Bool :$flag = 1) {
# ....
}
}

我现在想编写一个前端界面,询问用户他们想要使用什么类,他们想要使用该类的什么方法,然后他们想要的方法有哪些选项。我可以做前两件事,假设用户现在选择了类 foo 和方法 bar。

但是我如何才能知道 bar 方法将一个字符串作为第一个参数,以及一个默认为 1 的标志 => bool 键值对?我的代码需要知道这一点,这样我才能要求用户提供这些东西。

最佳答案

首先,获取方法元对象:

my $method = $class->meta->find_method_by_name( $method_name );

然后,确保它是一个签名方法:

confess "not method with a signature!"
unless $method->isa('MooseX::Method::Signatures::Meta::Method');

获取其签名:

my $sig = $method->parsed_signature;

然后查看$signamed_pa​​ramspositional_params 详见the Parse::Method::Signatures::Sig docs .

要找到 parsed_signature,我必须查看 source to MooseX::Method::Signatures::Meta::Method ……所以当你这样做的时候要小心。

关于perl - 您如何反省 MooseX::Method::Signatures 方法以查看它们采取的论点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com