Вы всегда получаете доступ к конкретному экземпляру вики посредством его уникального имени сценария, которое
в этой версии синтаксического анализа относится к заглушке запуска с уникальным именем. Мы анализируем
общий пример файла в этом разделе.
#!/USR/бен/перл
требуется 'wiki.lib'; # перейти на использование другой библиотеки
#$RePoint = 'другое имя'; # доступ параллельно со скриптом othername
#$AccessMode = 'NoEdit AppendOnly'; # реализовать контроль доступа
$ServeHome = 'MyhostNet'; # установить это для текста домашней привязки
$DefaultTitle = 'MyLocalNotebook'; # главная страница
$WikiHome = 'Местный/'; # родительский каталог базы данных
$NotifyEmail = 'wikiadmin@myhost.com';
# -v- необязательные спецификации
# $WikiTemplate = ' ../wiki/special/custom.html';
246
АЛЬТЕРНАТИВЫ И РАСШИРЕНИЯ
# $FileHome = 'wikicommon/ · ; #для шаблона, ess, img
# $WikiCss = $WikiHome . 'CSS/default.ess';
# $ImgType = ',gif'; # для логотипа
&ПроцессЗапрос;
# вызвать подпрограмму входа в библиотеку
По возвращении запрос обработан и скрипт завершает работу. Коротко, не так ли?
Здесь можно настроить множество других специальных параметров, но один
не нужно много.
Помимо того, что библиотека содержит все функциональные возможности, она определяет большинство
используемые стандартные и производные переменные (пути), включая извлечение имени заглушки в
определить как URL-адрес скрипта, так и имя экземпляра вики (если не указано иное). С
оператор require, вы также можете указать другой каталог или альтернативную библиотеку
для этого экземпляра.
БИБЛИОТЕЧНЫЙ МОДУЛЬ
Вики-библиотека построена вокруг подпрограммы входа и подпрограмм, вызываемых из нее, но
первым для выполнения является раздел, не являющийся подпрограммой, который определяет ряд переменных и значений по умолчанию.
использоваться позже. Эти определения и объявления появляются в контексте заглушки, когда требуется
оператор встречается, как правило, перед любыми операторами, присваивающими значение.
Анализ библиотеки структурирован примерно после модулей подпрограмм, потому что
это соответствует чистым функциональным разделам.
Преамбула
Часть преамбулы должна объявить все глобальные переменные (и в то же время обеспечить
допустимая инициализация). Хотя преамбула не является строго необходимой для многих сценариев
ситуаций, поскольку интерпретатор perl обычно перезапускается заново при каждом сценарии, если сервер
(или perl) настроен оставаться резидентным, глобальные значения могут быть перенесены в следующий
вызов скрипта. Одной из причин развертывания резидентного варианта является то, что ответ сервера становится
примерно в 30 раз быстрее по сравнению с обычным форк-процессом-при-вызове.
Во-первых, обратите внимание, что в библиотеке нет пути perl, определенного вверху. Это никогда
вызывается напрямую, только через заглушки. Мы игнорируем большинство формальных заявлений
и значения по умолчанию в этом обсуждении — вы можете изучить их в исходных примерах на
сопутствующий компакт-диск.
Вместо этого мы перечисляем лишь несколько критических заданий. Они включены, чтобы вы
сюда можно обратиться, когда та или иная переменная встретится позже и из
непосредственного контекста, вы не можете видеть, каким должно быть значение. Скорее всего,
Вы можете найти это здесь.
РАЗБОР ЗАПРОСОВ
247
$linkWord = "[AZ] [a-z0-9\-]+";
# разрешить шаблоны с дефисами
$linkSplit = "[AZ]"; # см. AsAnchor и HandleBrowse
$LinkPattern = "($linkWord){2,}";
LinkPattern — ключевое определение, поскольку оно определяет, какие шаблоны интерпретируются.
как гиперссылки на вики-страницы. Есть и другие способы определить это с тем же результатом, например
как [Az] [a-z0-9] + ([Az] [a-z0-9] + )+, и его можно до некоторой степени расширить, включив
международные символы, отличные от ASCII, для неанглоязычного вики-контента.
Совет 8.2. Проблемы с текстом не на английском языке