gpt4 book ai didi

perl - 强制 YAML::Tiny 值为数字

转载 作者:行者123 更新时间:2023-12-04 22:37:23 29 4
gpt4 key购买 nike

假设我有以下 YAML 文件:

---
task:
1:
command: '<task1_command>'
desc: '<task1_description>'
2:
command: '<task2_command>'
desc: '<task2_description>'

我使用 Perl 和 YAML::Tiny 读取文件:

$TASKS = YAML::Tiny->read(<YAML_file>);

而且我能够正常使用 desc/command 值,但是如果我使用以下方式编写 TASKS 数据:

$TASKS->write(<YAML_file>);

我得到了以下信息:

---
task:
'1':
command: '<task1_command>'
desc: '<task1_description>'
'2':
command: '<task2_command>'
desc: '<task2_description>'

任务编号在单引号之间!有没有办法“强制”YAML::Tiny 将任务值视为“数字”而不是“字符串”?

最佳答案

似乎没有办法解决这个问题,看起来这里已经提交了一个错误 ---

YAML::Tiny

然而,这可以像这样使用 YAML 来完成:

#!/usr/bin/perl

use warnings;
use strict;
use YAML;

{
no warnings;
local $YAML::Numify = 1;
}

my $file = YAML::LoadFile('test.yml');

open my $fh, '>', 'output.yml';
print $fh YAML::Dump $file;
close($fh);
  • 使用警告会产生一条消息,将本地 YAML::Numify 包装在没有警告的花括号中会抑制此消息。无论哪种方式,输出确实符合预期

测试.yml

---
task:
'1':
desc: '85'
command: '<task1_command>'
2:
desc: '100'
command: '<task2_command>'

输出.yml

---
task:
1:
command: '<task1_command>'
desc: 85
2:
command: '<task2_command>'
desc: 100

关于perl - 强制 YAML::Tiny 值为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47907095/

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