Я новичок в Perl (Strawberry Perl v5.12.3 в Windows 7), пытаясь написать сценарий, который поможет мне с повторяющейся задачей форматирования HTML. Файлы должны быть отредактированы вручную в будущем, и я хочу, чтобы они были удобными для людей, поэтому после обработки с использованием пакета HTML (HTML :: TreeBuilder и т. Д.) Я пишу результат в файл, используя HTML::PrettyPrinter. Все это хорошо работает, и вывод PrettyPrinter очень приятный и удобочитаемый. Тем не менее, PrettyPrinter не работает с самозакрывающимися тегами; в основном, похоже, что косая черта рассматривается как атрибут HTML. С входной как:Perl: HTML :: PrettyPrinter - Обработка самозакрывающихся тегов
<img />
PrettyPrinter возвращается:
<img /="/" >
Что я могу сделать, чтобы избежать этого, кроме предварительной обработки с регулярным выражением, чтобы удалить обратный слеш?
Не уверен, что это будет полезно, но здесь моя установка для красивой печати:
my $hpp = HTML::PrettyPrinter->new('linelength' => 120, 'quote_attr' => 1);
$hpp->allow_forced_nl(1);
my $output = new FileHandle ">output.html";
if (defined $output) {
$hpp->select($output);
my $linearray_ref = $hpp->format($internal);
undef $output;
$hpp->select(undef),
}
Спасибо за ответ. Однако ни одно из них не является решением. Даже если вы предложили вариант отступов табуляции, 'print $ h-> as_HTML' все еще запутывает вещи нечетным образом, что человек никогда не будет (например, все h2 запускаются вместе в одной строке с предыдущим p-тегом) , Следовательно, использование PrettyPrinter. Я думаю, вы неправильно поняли мой пример, связанный с PrettyPrinter. Нет ничего плохого в моих тегах img. PrettyPrinter печатает _all_ самозакрывающиеся теги в качестве стандартных тегов с атрибутом/property, установленным на «/», например. '
' становится '
' – SenatorForLife
Я обновил сообщение о том, как исправить модуль. надеюсь, это поможет – Dimanoid
Это, похоже, работает очень красиво, спасибо! Я определенно слишком много новичка Perl, чтобы разобраться с взломом самостоятельно. Для других пользователей Strawberry Perl вот где HTML :: PrettyPrinter появился на моей машине после установки с помощью cpanm: C: \ strawberry \ perl \ site \ lib \ HTML \ PrettyPrinter.pm – SenatorForLife