# добавить другие по мере необходимости

}

Тестирование выполняется для ключевых слов запроса, которые сценарий готов обработать, например

«просматривать», «редактировать», «опубликовать», «искать» и другие. Успешный тест вызывает

соответствующую подпрограмму для запрошенного действия. Объединение AND работает

потому что perl смотрит (и оценивает) только правую часть, если левая сторона истинна. Когда

настраивая базовый сценарий, вы можете добавить другие, когда вы написали

подпрограммы для обработки соответствующих функций.

Эта подпрограмма ввода заканчивается несколькими опциями отладки. Когда вы включаете каждый

(уберите маркер комментария), клиент браузера отображает несколько полезных дампов

соответствующие значения.

# &DumpBinding(\%CookedInput);

# &DumpBinding(\%page);

# &DumpBinding(\%ENV);

}

Отсюда управление переходит обратно к вызывающей заглушке, завершая обработку этого

конкретный запрос клиента.

Совет 8.5. Запросы браузера не имеют состояния

- Важно помнить, что запросы браузера не имеют состояния. Каждый запрос

обрабатывается в контексте, полностью независимом от любого предыдущего. Заглушка вызывается и

запрос анализируется без каких-либо предположений о чем-либо вне этого запроса,

Поскольку запрос по умолчанию — «обзор», мы сначала следуем дескриптору просмотра.

подпрограмма, которая также проведет нас через основные разделы кода рендеринга.

Просмотр страницы

Модель хранения страниц в этой реализации ClusterWiki использует «невидимые поля».

Они идентифицируются в данных страницы с помощью именованных блоков, разделенных «необычным» символом, отличным от ASCII, $mark, определенным в части объявления.


РАЗБОР ЗАПРОСОВ

253

Таким образом, извлеченный или полученный текст разбивается на блоки, как определено этими

разделители. Затем последующий код может ссылаться либо на видимый текст, либо на невидимый.

поля по мере необходимости.

Получить страницу

Для удобства извлечение страницы представляет собой отдельную подпрограмму:

подпрограмма RetrivePage {

мой ($название) =

мой $pn = $название;

мой $fn = "$DataBase/$title" ;

$pn

s/( . ) ($linkSplit)/$1 $2/г; # сделать пробел разделенным

мой $contents = "text$mark" . «Опишите $pn здесь». ;

Этот код предоставляет нам подсказку для конкретной страницы, если пользователь редактирует (или пытается

просмотр) неопределенная страница.

если ( -e "$fn" ) {

открыть (TITLE,"$fn") || &AbortScript("Не удается открыть $title: $!");

местный $/; # получить все строки

$contents '= <НАЗВАНИЕ>;

закрыть НАЗВАНИЕ;

}

вернуть разделение ($ метка, $ содержимое)

}