Я использую MooseX :: Declare и методы, которые используют MooseX :: Method :: Signatures. Допустим, у меня есть класс 'foo' с методом 'bar', и я реализовал его следующим образом:
class foo {
method bar (Str $str, Bool :$flag = 1) {
# ....
}
}
Теперь я хочу написать интерфейсный интерфейс, который спрашивает пользователя, какой класс он хочет использовать, какой метод в этом классе он хочет использовать, а затем какие опции для метода он хочет. Я могу сделать первые две вещи, поэтому предположим, что пользователь выбрал класс foo и метод bar.
Но как мне узнать, что панель методов принимает строку в качестве первого аргумента и пару значений ключа flag => bool, которая по умолчанию равна 1? Мой код должен знать это, поэтому я могу попросить пользователя предоставить эти вещи.