Q
什么是源过滤器?
14
A
回答
19
源过滤器是在评估之前修改其他一些代码的模块。因此,执行的代码不是程序员在写入时看到的内容。您可以在perldoc perlfilter
上阅读有关源过滤器的更多信息(在Perl上下文中)。一些示例是Smart::Comments
,它允许程序员在代码的注释中留下调试命令,并且只在需要时使用它们;另一个是PDL::NiceSlice
,这是用于切分PDL对象的糖。
编辑:
有关使用情况(如果您希望勇敢的野兽)的更多信息,请阅读文档Filter::Simple
这是一个典型的方法来创建过滤器。
另外还有一种新的,不同的方式来处理源代码:Devel::Declare
可让您与Perl自己的解析器进行交互,让您可以执行许多与源过滤器相同的类型,但不需要源过滤器。这在某些方面可能更“安全”,但其范围更加有限。
7
A 源代码过滤器是一种模块形式,它影响文件被解析的方式。它们通常用于模拟Perl本身没有的语法特征 - 例如,Switch
源过滤器通常用于在Perl的given { }
构造可用之前模拟开关语句。
源代码过滤器的工作方式是将模块的文本作为输入,对其执行一些处理,并输出过滤后的源代码。有关如何实现源过滤器的简单示例以及更多详细信息,请参阅perlfilter的perldoc页面。
4
它们是预处理器。他们在到达Perl编译器之前更改源代码。你可以用它们做一些可怕的事情,实际上是实现你自己的语言,它具有所有可读性(对于其他语言),健壮性(编写解析器很难)和可维护性(当你对源代码是什么不同于编译器和运行时认为的)。
相关问题
- 1. 什么是Zend视图过滤器?
- 2. 什么是“双箱式过滤器”?
- 3. 什么是设备过滤器?
- 4. 什么是Android的意图过滤器?
- 5. 什么是泽西岛过滤器?
- 6. 什么是实际应用过滤器?
- 7. 什么是真正的过滤器流?
- 8. DShow源过滤器:我是哪个过滤器实例?
- 9. Visual Studio IDE功能:过滤器;什么是过滤器属性用于?
- 10. Twilio过滤器的记录源是recordverb
- 11. 过滤器(| x |)和过滤器(|&x |)之间有什么区别?
- 12. 过滤/匹配URL的基本开源java包是什么?
- 13. IE5.5过滤器 - 为什么过滤器:渐变(属性)不可用,而过滤器:alpha(属性)是?
- 14. Grails请求过滤器:这个神秘授权方法的来源是什么?
- 15. 什么是最好的开源Java贝叶斯垃圾邮件过滤器库?
- 16. 过时的android.hardware.camera.autofocus的替代过滤器是什么?
- 17. 过滤器是
- 18. maven资源过滤器xml
- 19. datagridview绑定源过滤器
- 20. 写给Directshow源过滤器
- 21. ICollectionView过滤器影响源
- 22. 开源网页过滤器
- 23. DirectShow源代码过滤器
- 24. Jersey资源过滤器
- 25. 过滤记录的过滤器的另一个名称是什么?
- 26. 为什么要使用jQuery过滤器?
- 27. 为什么orderby过滤器不工作?
- 28. 为什么我dataveiw过滤器崩溃
- 29. 为什么过滤器不工作?
- 30. 为什么过滤器卡在nrepl中?
@mu太短:说实话,我不知道这是否是Perl特有的或不是 – Zaid