如何在YAML中声明列表并使用PERL YAML::XS读取

如何在YAML中声明列表并使用PERL YAML::XS读取,perl,yaml,Perl,Yaml,我可以在YAML中创建如下价值: MYVAL: 1 我可以在PERL中加载它,如下所示: my $settings = YAML::XS::LoadFile... my $number_mine = $settings->{'MYVAL'}; 我现在想在YAML中创建一个字符串数组。 我试着使用——并且——但没有看到它 亚马尔 PERL: 转储列表并查看其外观: $ perl -MYAML -E 'say YAML::Dump( { MYARRAY => ["str1","str

我可以在YAML中创建如下价值:

MYVAL: 1
我可以在PERL中加载它,如下所示:

my $settings = YAML::XS::LoadFile...
my $number_mine = $settings->{'MYVAL'};
我现在想在YAML中创建一个字符串数组。 我试着使用——并且——但没有看到它

亚马尔

PERL:


转储列表并查看其外观:

$ perl -MYAML -E 'say YAML::Dump( { MYARRAY => ["str1","str2","str3"] })'
---
MYARRAY:
  - str1
  - str2
  - str3

转储列表并查看其外观:

$ perl -MYAML -E 'say YAML::Dump( { MYARRAY => ["str1","str2","str3"] })'
---
MYARRAY:
  - str1
  - str2
  - str3
这:

是YAML映射,与您的

MYVAL: 1
是一个YAML映射。不同之处在于键
MYARRAY
的值是一个普通(即不带引号的)标量字符串
str1、str2、str3
,而值
MYVAL
是标量整数
1

如果要将三个字符串的序列作为单行上的值,则需要执行以下操作:

MYARRAY: [str1,str2,str3]
(可选在逗号之前和/或之后加空格)。这是一个由三个普通标量组成的流样式序列:
str1
str2
str3

另一种方法是使用块样式:

MYARRAY: 
- str1
- str2
- str3
这在语义上等同于上面的流样式示例。

这是:

是YAML映射,与您的

MYVAL: 1
是一个YAML映射。不同之处在于键
MYARRAY
的值是一个普通(即不带引号的)标量字符串
str1、str2、str3
,而值
MYVAL
是标量整数
1

如果要将三个字符串的序列作为单行上的值,则需要执行以下操作:

MYARRAY: [str1,str2,str3]
(可选在逗号之前和/或之后加空格)。这是一个由三个普通标量组成的流样式序列:
str1
str2
str3

另一种方法是使用块样式:

MYARRAY: 
- str1
- str2
- str3

这在语义上等同于上面的流样式示例。

我想我对PERL加载到变量并访问第一个元素感到困惑。实际上我有上面的内容,但我认为这是错误的。列表元素前面的前导空格很重要。@mob不,破折号前面的前导空格不重要。实际上,所有YAML库都可以在没有前导空格的情况下解析它。破折号被计算为缩进。我想我对PERL加载到变量中并访问第一个元素感到困惑。实际上我有上面的内容,但我认为这是错误的。列表元素前面的前导空格很重要。@mob不,破折号前面的前导空格不重要。实际上,所有YAML库都可以在没有前导空格的情况下解析它。破折号作为缩进计数。请参阅