Pega el Perl a la izquierda y pulsa "Convertir" — lo transformamos en JSONPega código Perl

Qué hace esta herramienta

Si alguna vez te has quedado mirando un hash ref de Perl profundamente anidado e intentando escribir el JSON equivalente a mano, conoces el dolor — => vs :, claves entrecomilladas, strings escapados, todo el paquete. Pega el Perl aquí y obtienes JSON válido sin reescribir nada. Acepta un solo hash ref {...}, una cadena de declaraciones my $x = {...}; my $y = [...];, o algo con cinco niveles de array refs dentro de hash refs dentro de más hash refs.

Coincide con lo que obtendrías de JSON::PP o Cpanel::JSON::XS con canonical => 1. Los hash refs se convierten en objetos JSON, los array refs en arrays, undef pasa a null, los números siguen siendo números y los strings siguen siendo strings. La ambigüedad habitual de la documentación de Perl entre "1" y 1 se resuelve como siempre — si parece numérico, sale como número JSON.

Las referencias blessed (la versión Perl de los objetos) se desempaquetan al hash ref subyacente, así que un bless { ... }, "Order" sale como un objeto JSON plano con las mismas claves. Los valores centinela JSON::true, JSON::false y JSON::null se convierten a sus equivalentes JSON. Varias declaraciones de nivel superior acaban como claves en la salida JSON, nombradas por la variable.

Cómo usarla

Tres pasos. Funciona igual si pegas un hash ref pequeño o un volcado entero de configuración.

1

Pega tu Perl (o prueba el ejemplo)

Suelta tu Perl en el editor de la izquierda tal cual. Un hash ref, un array ref, varias declaraciones o un objeto blessed — todo vale. Pulsa Cargar ejemplo si quieres ver algo realista.

Deja la sintaxis de referencias tal cual — \%hash, \@array, {...}, [...]. El parser los entiende todos.

2

Pulsa Convertir

Pulsa el botón verde Convertir. La herramienta recorre la estructura Perl, resuelve las referencias y genera el JSON en una sola pasada.

3

Copia el JSON

El panel derecho muestra JSON indentado, listo para un payload de API, un fichero fixture o un test de módulo CPAN. Copia y sigue.

Cuándo viene bien de verdad

Migrar desde Storable o Data::Dumper

Tienes años de volcados legados de hashes Perl y los tienes que pasar a una API moderna — JSON es la lingua franca. Pega y obtén JSON decente sin escribir un encoder.

Alimentar un endpoint REST desde un script Perl

Tu cron construye un hash ref a partir de una consulta a la base de datos. Antes de lanzarlo contra una API REST, pégalo aquí para verificar que la forma del JSON coincide con lo que espera el servidor.

Escribir fixtures de test

Coge un hash ref directamente de un test de módulo Perl, conviértelo a JSON y déjalo en un fichero .json de fixture para tests multi-lenguaje.

Compartir config con devs no-Perl

Un fichero de config Perl usa hash refs por todas partes. Conviértelo a JSON para que el equipo de Node, Go o Python pueda leerlo sin instalar Perl.

Preguntas frecuentes

¿Maneja objetos blessed?

Sí. Un hash ref blessed (por ejemplo bless { id => 1 }, "Order") se trata como su hash ref subyacente — el nombre de la clase se descarta y las claves/valores salen como un objeto JSON plano. Esto coincide con cómo se comporta JSON::PP con convert_blessed.

¿Y qué pasa con <code>undef</code>, <code>JSON::true</code>, <code>JSON::false</code>?

undef pasa a null en JSON. JSON::true / \1 pasa a true, JSON::false / \0 pasa a false. Son las convenciones booleanas estándar de Cpanel::JSON::XS.

¿Puedo pegar salida de <code>Data::Dumper</code>?

Sí — la salida de Data::Dumper (la forma $VAR1 = {...};) se parsea sin problema. El $VAR1 = inicial se trata como nombre de variable y se convierte en la clave externa.

¿Cómo distingue números de strings?

Perl es bastante laxo con esa diferencia. El conversor sigue la regla habitual: los literales numéricos sin comillas (42, 3.14) pasan a números JSON, y cualquier cosa entrecomillada ("42") se queda como string JSON. Si necesitas un string con pinta de número, ponlo entre comillas.

¿Se guarda mi código?

Tu código va al backend para la conversión y no se persiste — no registramos el payload. Si el hash ref lleva credenciales reales, cámbialas antes de pegar.

¿Y si pego varios hash refs?

Cada my $name = {...}; de nivel superior se convierte en una clave en el JSON de salida, con el nombre de la variable. Las estructuras anónimas reciben "_1", "_2", etc. No se descarta nada en silencio.

Otras herramientas que te pueden hacer falta

Perl a JSON combina bien con el resto de la caja de herramientas: