这与上一个问题有关:我该如何阅读来自Python的Perl数据结构?。它可能是我正在使用的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

请注意,密钥正则表达式没有显式类型。是什么赋予了? (谢谢!)

有帮助吗?

解决方案

来自 man perldata

  

哈希是由关联的字符串键索引的标量值的无序集合。

密钥在YAML转储中没有类型,因为它们在Perl中没有类型。它们只是字符串。在你的情况下,字符串(? - xism:^ spam)

试试这个: perl -l -e'%config =(qr / ^ spam / => qr / eggs $ /); print $ config {"(? - xism:^ spam)"}'

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top