1

这与之前的问题有关:如何从 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

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

4

1 回答 1

4

来自man perldata

散列是标量值的无序集合,由其关联的字符串键索引。

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

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

于 2009-01-06T12:48:45.240 回答