Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax YAML语法验证程序脚本_Syntax_Yaml - Fatal编程技术网

Syntax YAML语法验证程序脚本

Syntax YAML语法验证程序脚本,syntax,yaml,Syntax,Yaml,我的任务是创建和编辑相当多的YAML文件,但我希望通过脚本来运行它,而不是使用在线语法验证器。是否有可用的脚本来测试YAML语法?我通过Perl找到了一个使用Perl::xs的,但它不是特别可移植的 您应该尝试CPAN,它是纯perl的,没有依赖项,因此是可移植的。您甚至可以下载它并将其与您的验证程序脚本放在一起,而无需安装 下面是一个验证程序脚本示例: 使用YAML qw(加载文件); 使用数据::转储程序; my$data=LoadFile($ARGV[0]); 打印转储程序(数据); 如

我的任务是创建和编辑相当多的YAML文件,但我希望通过脚本来运行它,而不是使用在线语法验证器。是否有可用的脚本来测试YAML语法?我通过Perl找到了一个使用Perl::xs的,但它不是特别可移植的

您应该尝试CPAN,它是纯perl的,没有依赖项,因此是可移植的。您甚至可以下载它并将其与您的验证程序脚本放在一起,而无需安装

下面是一个验证程序脚本示例:

使用YAML qw(加载文件);
使用数据::转储程序;
my$data=LoadFile($ARGV[0]);
打印转储程序(数据);
如果发生任何错误,错误消息将告诉您问题出在哪里:

YAML错误:应为分隔符“-”
代码:YAML\u解析\u错误\u无\u分隔符
行:1
文件:2
在/Users/alec/perl5/perlbrew/perls/p5161t/lib/site_perl/5.16.1/YAML/Loader.pm第81行。

有几种方法可用于解析YAML。如果你的输入包含语法错误,他们应该都能给你一些反馈。你能澄清一下“可移植”吗?XS几乎可以在任何操作系统上工作。你是说不需要重新编译就可以从一台机器运送到另一台机器吗?YAML.pm是一个糟糕的YAML实现。您可以使用选择安装的最佳可用YAML实现。同意。事实上,我在大多数项目中都使用YAML::XS。但是既然@securitygate提到他不喜欢XS,我想他想要一个脚本级的解决方案。它将为您选择最佳安装版本。如果YAML::XS可用,它将使用它。如果不是,它将使用YAML.pm。