Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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
使用Perl就地编辑YAML文档_Perl_Yaml - Fatal编程技术网

使用Perl就地编辑YAML文档

使用Perl就地编辑YAML文档,perl,yaml,Perl,Yaml,我对Perl和YAML相当陌生。我想从YAML文件中读取数据,并在不重写整个配置文件的情况下编辑/写入一些属性值(保留现有注释、空行、空格等) 我正在Perl中使用YAML库。实现这一点的好方法是什么?您不能轻易地编写文件的一部分-最终将重写整个文件。如果您确实编写了一个部分文件,则必须查找到起始位置,将文件截断到该长度(或先截断,然后查找/追加),然后在未更改的起始位置之后写入文件的新尾部。文件系统不支持诸如“删除偏移量193处的329字节并在产生的偏移量227后插入46字节”之类的操作 如果

我对Perl和YAML相当陌生。我想从YAML文件中读取数据,并在不重写整个配置文件的情况下编辑/写入一些属性值(保留现有注释、空行、空格等)


我正在Perl中使用YAML库。实现这一点的好方法是什么?

您不能轻易地编写文件的一部分-最终将重写整个文件。如果您确实编写了一个部分文件,则必须查找到起始位置,将文件截断到该长度(或先截断,然后查找/追加),然后在未更改的起始位置之后写入文件的新尾部。文件系统不支持诸如“删除偏移量193处的329字节并在产生的偏移量227后插入46字节”之类的操作


如果您的YAML模块(库)以某种方式保留或提供了引导注释和空行,那么您将能够轻松地保留它们。如果没有,那么您可能需要自己完成这项工作—读取并保存注释行,然后使用YAML解析文件,然后编写保留的注释和替换的YAML。

ah ok。。谢谢你,伙计。。。而且你对拼写错误也有敏锐的眼光!:)