这与前一个问题有关:How can I read Perl data structures from Python?。它可能是我正在使用的YAML解析器版本中的错误(0.66),但是当我运行时:
perl -MYAML -le 'do shift; print YAML::Dump( $CPAN::Config )' simple.pl
在以下simple.pl
上:
%config = (
'color' => 'red',
'numbers' => [5, 8],
qr/^spam/ => qr/eggs$/,
);
我明白了:
---
(?-xism:^spam): !!perl/regexp (?-xism:eggs$)
color: red
numbers:
- 5
- 8
请注意,密钥正则表达式没有显式类型。是什么赋予了? (谢谢!)
答案 0 :(得分:4)
来自man perldata
:
哈希是由关联的字符串键索引的标量值的无序集合。
密钥在YAML转储中没有类型,因为它们在Perl中没有类型。它们只是字符串。在你的情况下,字符串(?-xism:^spam)
试试这个:
perl -l -e'%config = ( qr/^spam/ => qr/eggs$/); print $config{"(?-xism:^spam)"}'