¿Se permiten expresiones regulares explícitas como claves en el volcado YAML de Perl?

StackOverflow https://stackoverflow.com/questions/415762

  •  03-07-2019
  •  | 
  •  

Pregunta

Esto se relaciona con una pregunta anterior: ¿Cómo puedo leer? ¿Estructuras de datos Perl de Python? . Podría ser un error en la versión del analizador YAML con el que estoy trabajando (0.66), pero cuando ejecuto:

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

En el siguiente simple.pl :

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

me sale:

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

Tenga en cuenta que la expresión regular clave no tiene el tipo explícito. ¿Lo que da? (¡Gracias!)

¿Fue útil?

Solución

De man perldata :

  

Los hashes son colecciones desordenadas de valores escalares indexados por su clave de cadena asociada .

Las claves no tienen un tipo en el volcado de YAML porque no tienen un tipo en Perl. Son solo cuerdas. En su caso, la cadena (?-xism:^spam)

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top