Веб Дизайн - статьи

         

определяют массив названий групп,


Строки 3-5: подключение модулей
Строка 7: Адрес news-сервера можно конечно же поменять.
Строки 12- 22 определяют массив названий групп, в длинной форме - для сервера и в короткой - для человека. Длинное имя можно получить, например, так - $groups[2][0], а короткое - $groups[2][1]
В строке 24 создается CGI-объект $Q. Входные данные скрипт может получать из командной строки, через переменную окружения и из стандартного потока ввода.
Строка 25 позволяет получитьURL скрипта, который используется в дальнейшем.
В 27 строке проверяется входной параметр 'group'. И если его нет - то выводится полный список групп. Строки 28-44 создают страничку со списком доступных групп на основе массива @groups 28-29 строки создают переменную $links, содержащую ссылки на группы в виде:
<p><a href="SOMEWHERE?group=clari.living.comics.doonesbury">Doonesbury</a> Где SOMEWHERE - это как раз URL скрипта.
Строки с 32 по 40 выводят результат - заголовок, начало HTML-документа, список ссылок и конец HTML-документа. Конструкция @{[thing]} - это вывод 'thing' в списковом контексте. Можно было вместо этого просто разбить оператор print на несколько операторов print.
Строка 46: проверка на наличие входного параметра article.
Строки с 47 по 65 выводят список сообщений в выбранной группе.
Строка 47: установление соединения с news-сервером (порт 119 - стандартный)
Строки с 48 по 51: вывод тем всех сообщений в данной конференции. Выражение в строке 48 возвращает массив строк, где символом табуляции разделены номер и тема сообщения. 49 строка разбивает строки, а 50тая - создает строку со списком уже в HTML-виде, где на каждое сообщение - своя ссылка:
<p><a href="SOMEWHERE?group=clari.living.comics.doonesbury&article=123">Doonesbury 950101</a>
Строки 52-60: вывод результатов
Строка 69 начинает часть скрипта, которая непосредственно выдает картинки, содержащиеся в отдельных сообщениях. Снова устанавливается соединение с news-сервером, и забирается уже конкретное сообщение.
Строка 71: сообщение укладывается в массив @art
Строка 72: так как важна только та часть сообщения, которая начинается с Content-type, то все остальные строки можно выкинуть. При этом сохраняется тип картинки (строка 73).
Строки 74-75: Пустая строка после Content-type пропускается
Строка 76: непосредственно декодирование из base64
Строки 77-78: вывод картинки браузеру

Содержание раздела