标识符术语在文档中与常量一起定义,使用情况几乎相同,尽管术语在运行时计算其值,而常量在编译时获取。可能会使术语使用全局变量,但这是遥不可及的,因此我想这不是它们的用例。OTOH,它们可能只是带有空签名的例程:
sub term:<þor> { "Is mighty" }
sub Þor { "Is mighty" }
say þor, Þor;
Run Code Online (Sandbox Code Playgroud)
但是您已经可以使用空签名定义例程。但是,可以编写以下错误:
say Þor ~ Þor;
Run Code Online (Sandbox Code Playgroud)
与术语不同,它将产生一个many positionals passed; expected 0 arguments but got 1。但是,这似乎有些牵强,您可以通过在末尾添加()来节省麻烦。
另一个可能的用例是违反普通标识符的规则
sub term:<?> { True }
say ?; # True
Run Code Online (Sandbox Code Playgroud)
我还有其他用例吗?
将零参数的subs用作术语可以消除后声明subs的可能性,因为在解析了subs的用法后找到sub会要求重新解析早期的代码(perl 6语言拒绝这样做,“ one-pass解析”和所有其他内容)(如果该子项不带任何参数)。