2010-10-16 15 views
15

Un gato de mi empresa pasó por encima de un teclado y dejó una línea válida de más de 1000 líneas de código Perl ejecutable para mantener.¿Cómo puedo ordenar automáticamente el código fuente de Perl?

Gracias a la filosofía TMTOWTDI de Perl, me encuentro buscando en Google para dar sentido a cada línea de código que ha producido.

Para agregar a mi miseria, el código no está indentado y uno encuentra la ocurrencia frecuente de las dos declaraciones en una línea, la incapacidad de averiguar si un ciclo es externo/interno.

¿Cómo puedo autodefinir este código de Perl a la cordura? Sí, apuesto a que habrá algún módulo de CPAN que haga eso. ¿Qué tal una herramienta externa? ¿Alguna pista?

+0

-1 para la hilaridad – MkV

+1

@MkV Eso duele –

+5

+1 por hilaridad :) – ttvd

Respuesta

22

Perl::Tidy puede hacer eso, y mucho más. Por lo general, se utiliza a través del ejecutable perltidy que instala.

6

Perl Tidy es una utilidad realmente útil. Viene con una variedad de opciones desacreditadoras.
Hay alguna orientación al http://perltidy.sourceforge.net/ y http://perltidy.sourceforge.net/tutorial.html

Por ejemplo -i=8 overides el número de espacios para sangrar (por defecto = 4) y -bl pone los frenos en una nueva línea:

if ($something) 
{ 
    print "....."; 
} 

Yo sugeriría que juega en una copia del código y ver qué opción te gusta más.

Puede instalarlo desde CPAN, o varioujs otras opciones en http://perltidy.sourceforge.net/ dependiendo de su plataforma y gusto!

6

Éstos son algunos ejemplos de cómo utilizar perltidy con el comportamiento no predeterminado:

  • Habilitar abrazado-vigilara (. Ej } else {), la línea límite de longitudes de hasta 300 caracteres para todos los archivos .pl

    $ perltidy -ce -l=300 *.pl 
    
  • Mantener viejos puntos de interrupción por comas, congelar los espacios en blanco existentes en script.pl

    $ perltidy -boc -fws script.pl 
    
  • escritura de reserva y modificar script1.pl, script2.pl en el lugar

    $ perltidy -b script1.pl script2.pl 
    
  • script 'Ofuscación' despojándolo de la mayor cantidad de espacio en blanco como sea posible.

    $ perltidy --mangle scipt.pl 
    
1

Al igual que con la mayoría de las cosas, si search CPAN, que tienen su respuesta más rápido de lo que le lleva a una sesión a desbordamiento de pila. :)

En este caso, es Perl::Tidy como otras personas ya han mencionado. Tenemos algunos consejos más largos acerca de esto en Programación eficaz Perl también.

Cuestiones relacionadas