检查字符串或文件的语法

jjm*_*elo 5 perl6

是否有任何内部(如仅在内存中)等效于在文件上运行perl6 -c来检查语法?到目前为止,有两种方法

  • 运行EVAL,但这实际上运行代码。它的速度很快,但是如果不对所评估的结构进行垃圾收集,可能会导致一些内存问题
  • 创建一个临时文件并在其上运行perl6 -c,但是如上所述,这是安全的,但速度要慢一个数量级。

我正在寻找一种安全的方法(如perl6 -c)和一种快速的方法(如EVAL)。任何的想法?

cod*_*ons 3

正如上面评论中所指出的,Raku 现在支持这一点,让您将:check命名参数传递给EVALFILE(检查文件的语法)或EVAL(检查字符串的语法)。无论哪种情况,Nil如果语法有效,函数都会返回,如果语法无效,函数将抛出相关异常。