所以我一直在深入研究Perl 6,并且一直在研究使用Perl 6的运算符定义来解释另一种语言。我知道这可以通过解析代码来完成,但我想推动Perl 6的功能以看看它能做什么。拥有这个功能也会使解析变得更容易。
我试图以C风格格式进行变量定义。(语言并不重要)
类似于:
调用带有foo作为$input的子程序。从这里开始,想法是将foo作为字符串并将其引用保存在哈希表中。问题在于Perl 6似乎将任何裸字视为函数调用,并且当它找不到“未声明的例程”时会发出警告。
我已经尽可能地寻找答案,唯一让我仍然认为这可能是可能的是Perl 5中的qw函数,现在在Perl 6中是< >。明显,< >是一个操作符,这导致我相信在某个地方定义了一个子例程,告诉这个操作符如何工作以及如何处理裸字输入。
那么,我的问题是:
是否有一种方式接受裸字输入到子程序中,就像< >操作符一样?
干杯!
我试图以C风格格式进行变量定义。(语言并不重要)
类似于:
char foo;
在这里,char代表类型,foo是变量名。据我理解,可以使用操作符定义来解释char,如下所示:
sub prefix:<char>($input) {
say $input;
}
调用带有foo作为$input的子程序。从这里开始,想法是将foo作为字符串并将其引用保存在哈希表中。问题在于Perl 6似乎将任何裸字视为函数调用,并且当它找不到“未声明的例程”时会发出警告。
我已经尽可能地寻找答案,唯一让我仍然认为这可能是可能的是Perl 5中的qw函数,现在在Perl 6中是< >。明显,< >是一个操作符,这导致我相信在某个地方定义了一个子例程,告诉这个操作符如何工作以及如何处理裸字输入。
那么,我的问题是:
是否有一种方式接受裸字输入到子程序中,就像< >操作符一样?
干杯!
<>
不一定是一个接受裸字的运算符,它可以定义为语法的一部分。也许你需要添加到语法中,而不是定义一个函数。 - Schwern