重载包函数以检测没有使用参数
Overloading a package funcion to detect no arguments have been used
我正在尝试重载函数以检测没有传递任何参数:
package Documentable::CLI {
sub RUN-MAIN(|c) is export {
my %*SUB-MAIN-OPTS = :named-anywhere;
CORE::<&RUN-MAIN>(|c)
}
our proto MAIN(|) is export { * }
multi MAIN (
Bool :V(:$version)
) {}
multi MAIN () {
say 'Execute "documentable --help" for more information'
}
}
# no output
Documentable::CLI::MAIN();
如果您尝试使用 multi main (*@args) {}
,它也不会起作用。但是,如果您删除第一个 multi MAIN
定义,一切都会顺利进行。知道如何解决吗?
签名:(Bool :V(:$version))
不接受任何参数,因为参数version
是可选的,而且比签名:()
更具体。您可以使论点 version
成为强制性的
multi MAIN (
Bool :V( :$version )!
) {}
我正在尝试重载函数以检测没有传递任何参数:
package Documentable::CLI {
sub RUN-MAIN(|c) is export {
my %*SUB-MAIN-OPTS = :named-anywhere;
CORE::<&RUN-MAIN>(|c)
}
our proto MAIN(|) is export { * }
multi MAIN (
Bool :V(:$version)
) {}
multi MAIN () {
say 'Execute "documentable --help" for more information'
}
}
# no output
Documentable::CLI::MAIN();
如果您尝试使用 multi main (*@args) {}
,它也不会起作用。但是,如果您删除第一个 multi MAIN
定义,一切都会顺利进行。知道如何解决吗?
签名:(Bool :V(:$version))
不接受任何参数,因为参数version
是可选的,而且比签名:()
更具体。您可以使论点 version
成为强制性的
multi MAIN (
Bool :V( :$version )!
) {}