Frage

Dies bezieht sich auf eine frühere Anfrage: Wie kann ich lesen Perl-Datenstrukturen von Python? . Es könnte ein Fehler in der Version des YAML-Parsers sein, dass ich mit (0,66) bin zu arbeiten, aber wenn ich laufe:

perl -MYAML -le 'do shift; print YAML::Dump( $CPAN::Config )' simple.pl

Am folgenden simple.pl:

%config = (
    'color' => 'red',
    'numbers' => [5, 8],
    qr/^spam/ => qr/eggs$/,
);

ich:

---
(?-xism:^spam): !!perl/regexp (?-xism:eggs$)
color: red
numbers:
  - 5
  - 8

Beachten Sie, dass der Schlüssel regex nicht den expliziten Typ hat. Was gibt? (Danke!)

War es hilfreich?

Lösung

Von man perldata:

  

Hashes sind ungeordnete Sammlungen von skalaren Werten indiziert durch ihren zugehörigen string key .

Die Tasten haben keinen Typ in der YAML-Dump, weil sie nicht auf einen Typ in Perl haben. Sie sind nur Strings. In der String (?-xism:^spam) case

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top