我在尝试使用Devel :: Declare创建关键字时遇到了麻烦.在这个问题上没有很多例子和教程.
我的宠物项目是创建一个名为new的关键字doing,其语法类似于Ruby do,例如:
my @arr = qw/foo bar baz/;
@arr doing $x {
print "x is $x";
};
Run Code Online (Sandbox Code Playgroud)
我的想法是将其转换为for my $x (@arr) { ... }带有Devel::Declare解析钩子的语句.我不确定这是否可行.
我发现的大多数示例(来自Devel :: Declare测试目录)都用于创建method-style关键字.
我会很感激有关如何入门的一些指示,或者用于处理的关键功能,或者基于我的现有代码.
hob*_*bbs 14
doing到一个关键字,则@arr doing ...仍然需要转换到的东西,开始用@arr,这似乎是一个相当大的障碍.keyword 一些 { ... }可以变成对keyword(其他东西 的简单调用和可能转换的东西的情况下,它可以用最少的扭曲sub { ... }).你可以看出它为什么能够很好地适应像method或者这样的东西Test::Class::Sugar.我的观点是,在数组名称之后不是 perl解析器正在寻找sub的名称的地方; 它是解析器正在寻找操作符的地方,因此在Devel :: Declare有机会进行干预之前@arr doing ...会给你一个bareword found where operator expected错误.这两种方法都可以通过改变方式来克服,以便你的关键字首先显示在行上,但是现在你有了keyword 某些元素 { ... },其中数组的名称是某些元素,并且你已经完全符合大多数其他模块所具有的模式雕刻出来 - 只有当你生成一个for循环时,你可能会将该块作为一个真正的块而不是让它被解析为一个子定义.
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |