Формато-специфичные абзацы
Мы только что увидели, что командой L не так-то легко управлять. А почему мы не можем просто использовать HTML-ссылку? Краткий ответ "потому что POD -- это не HTML" подсказывает решение. Если бы мы могли указать, что этот абзац предназначен для HTML, этот -- для LaTeX, а этот -- для SnaFoo", то мы могли бы использовать разметку, специфичную для этих форматов.
Специальная команда
=for format абзац_текста
указывает транслятору обратить внимание на format перед тем, как он станет обрабатывать абзац_текста. Если транслятор чувствует, что он "отвечает" за обработку формата format, то он его обрабатывает по своим правилам, в противном случае он его полностью игнорирует. Вторая часть названия обработчика обычно указывает, в какой формат он транслирует. Например pod2man работает с =for man, pod2html преобразует абзацы =for html, и т.д.
Всякий раз при использовании формато-специфичного абзаца в документе появляется "ветвление" (поскольку разделы =forformat должны быть созданы для каждого из предполагаемых выходных форматов), тем самым пробивается брешь в стройной структуре документа.
Это обычный абзац, который обрабатывается всеми трансляторами.
=for html <p>Этот абзац появится только в файле обработанном <b>pod2html</b>.</p>
=for latex Тот же самый абзац, но оттранслированный {\bf pod2latex}.
=for text А я предназначен для *pod2text*.
Продолжаем писать для всех и всяких форматов.
Трансляторы игнорируют неизвестные форматы, так что мы можем изобрести абзацы для своих специальных нужд! Например, чтобы закомментировать сразу целый абзац, можно написать:
=for comment Кто-нибудь может разобраться со следующим разделом?
Часто используется формат emacs :-) Для того чтобы при подготовке POD-файла переключить emacs в текстовой режим, начните файл с:
=for emacs -*- text -*-
или закончите его так:
=for emacs Local Variables: mode: text End:
Те пользователи emacs, которые применяют дополнение hyperbole, могут превратить имеющиеся у них "тупые" POD-файлы в связанную гипрессылками коллекцию (на самом деле возможности hyperbole этим не исчерпываются, но гиперссылки -- хорошее начало) файлов следующей командой:
=for hyperbole <(std-reference)>
где <(std-reference)> -- это кнопка hyperbole, которая, стоит по ней кликнуть мышью, переносит вас в другой файл, содержащий документацию по std.