gpt4 book ai didi

Perl Mason 语法验证

转载 作者:行者123 更新时间:2023-12-04 23:00:07 26 4
gpt4 key购买 nike

有没有办法在命令行验证 perl mason 语法?我知道对于常规 perl 模块,您可以使用 perl -c ,但这会引发诸如文档字符串等特定于石匠的语法的错误......

例如:

<%doc>
DOCUMENTATION SHOULD NOT GET PARSED
</%doc>

<%args>
$args
</%args>

<%perl>
my $var = $args->{var};
</%perl>

是一个有效的 perl mason 文件,但正在运行 perl -c反对它返回:
Semicolon seems to be missing at path/to/file.mc line 1.
syntax error at path/to/file.mc line 2, near "DOCUMENTATION S"
path/to/file.mc had compilation errors.

最佳答案

我看了一眼梅森,第一眼看到的是Mason::App/mason.pl

$ mason junk.mason
Invalid attribute line '$args' at ./junk.mason line 6

整齐吧?但这实际上是在尝试运行代码,所以下一步是查看内部,然后环顾四周,我发现 Mason::Interp其中有 load (path)这被记录为

Returns the component object corresponding to an absolute component path, or undef if none exists. Dies with an error if the component fails to load because of a syntax error.



所以你可以调整 Mason::App 来加载而不是运行或者像这样制作你自己的简单版本
#!/usr/bin/perl --
use strict; use warnings; use Mason;
my $interp = Mason->new(
comp_root => '/path/to/comps',
data_dir => '/path/to/data',
...
);
$interp->load( shift );

关于Perl Mason 语法验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27971410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com