Как я могу автоматически привести в порядок исходный код Perl? - PullRequest
16 голосов
/ 16 октября 2010

Кот в моей компании прошел через клавиатуру и оставил для меня действительную строку из 1000+ исполняемого кода Perl, которую я должен сохранить.

Благодаря философии Perl TMTOWTDI, я нахожусь в поиске Google, чтобы понять каждыйстрока кода, которую она произвела.

Чтобы добавить к моим страданиям, код не имеет отступов, и можно найти частое вхождение двух операторов в одной строке, невозможность выяснить, является ли цикл внешним / внутренним.

Как я могу автоматически использовать этот код Perl для здравомыслия?Да, держу пари, что был бы какой-то модуль CPAN, который делает это.Как насчет внешнего инструмента?Любые подсказки?

Ответы [ 5 ]

23 голосов
/ 16 октября 2010

Perl::Tidy может сделать это и многое другое.Обычно он используется через исполняемый файл perltidy, который он устанавливает.

6 голосов
/ 16 октября 2010

Вот несколько примеров использования perltidy с поведением не по умолчанию:

  • Включить объятия-elses (например, } else {), ограничить длину строки до 300 символов для всех файлов .pl

    $ perltidy -ce -l=300 *.pl
    
  • Сохранить старые точки останова через запятую, заморозить существующие пробелы в script.pl

    $ perltidy -boc -fws script.pl
    
  • Резервное копирование скрипта и изменение script1.pl, script2.pl на месте

    $ perltidy -b script1.pl script2.pl
    
  • Сценарий 'Obfuscate', удаляя как можно больше пробелов.

    $ perltidy --mangle scipt.pl
    
6 голосов
/ 16 октября 2010

Perl Tidy - действительно полезная утилита.Он поставляется с массивом опций.
Есть некоторые указания на http://perltidy.sourceforge.net/ и http://perltidy.sourceforge.net/tutorial.html

Например, -i=8 переопределяет количество пробелов для отступа (по умолчанию = 4)-bl ставит скобки в новую строку:

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

Я бы предложил сыграть на копии кода и посмотреть, какой вариант вам больше нравится.

Вы можете установить его.от CPAN или другие варианты на http://perltidy.sourceforge.net/ в зависимости от вашей платформы и вкуса!

1 голос
/ 16 октября 2010

Как и в большинстве случаев, если вы ищете CPAN , у вас есть ответ быстрее, чем требуется для входа в Stack Overflow.:)

В данном случае это Perl :: Tidy , как уже упоминали другие люди.У нас есть еще несколько советов по этому поводу в Эффективном программировании на Perl .

0 голосов
/ 02 мая 2016

Вы также можете использовать онлайн-инструмент http://www.cleancss.com/perl-beautify/.

...