Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 [ 72 ] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103

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

Поэтому лучшее, что вы можете сделать, - это посмотреть на сценарий shell, определить, что он делает, и начать все с нуля, но уже на Perl. Конечно, вы можете провести на скорую руку транслитерацию - поместив основные части исходного сценария в вызовы system {) или заключив их в обратные кавычки. Возможно, вам удастся заменить некоторые операции командами Perl: например, заменить systemfrm fred) на unlink (fred) или цикл for shell на такой же цикл Perl. В большинстве случаев, однако, вы увидите, что это несколько напоминает конвертирование программы, написанной на Коболе, в С (почти с тем же уменьшением количества символов и, как следствие, повышением степени неразборчивости текста программы).

Упражнение

Ответ см. в приложении А. 1. Преобразуйте следующий сценарий shell в Perl-программу:

cat /etc/passwd I

awk -F: >(print $1, $6}> 1

while read user home

newsrc=../../../cl/"$home/.newsrc" if [ -r $newsrc ] then

if grep -s "comp\.lang\.perl\.announce: $newsrc then

echo -n "$user is a good person, ";

echo "and reads corap.lang.peri.announce!"

fi done




в этой главе:

• Модуль CGI.pm

• Ваша CGI-программа в котпексте

• Простейшая СС1-програмл1а

• Передача пара.метров через CGI

• Кап сократить объем М ш Y

програжнирование

вводимого текста Генерирование формы

Другие компоненты

формы

Создание

СС1-програл1мы

гостевой книги

Поиск и устранение

ошибок в

С 01-програмл1ах

Perl и Web: не только

С GI-программирование

Допо.чнител ьная .литература

Упражнения

Если в течение последних нескольких лет вы не сидели взаперти в деревянной хижине без электричества, то вы наверняка слышали о World Wide Web. Web-адреса (больше известные как URL) сейчас можно найти везде: на рекламных плакатах и в титрах кинофильмов, на обложках журналов и на страницах других изданий, от газет до правительственных отчетов.

Многие из самых интересных Web-страниц включают разного рода формы, предназначенные для ввода данных пользователем. Вы вводите данные в такую форму и шелкаете на кнопке или рисунке. Это действие запускает некую программу на Web-сервере, которая изучает введенные вами данные и генерирует новую выходную информацию. Иногда эта программа (широко известная как программа общего шлюзового интерфейса, или CGI-программа) представляет собой просто интерфейс к существующей базе данных; она преобразует введенные вами данные в нечто понятное для этой базы данных, а выходную информацию базы данных - в нечто понятное для Web-броузера (обычно в HTML-форме).



CGI-программы не просто обрабатывают данные, введенные в форму. Они вызываются и тогда, когда вы щелкаете на графическом изображении, и фактически могуг использоваться для отображения всего того, что "видит" ващ броузер. Web-страницы с CGI-поддержкой - это не безликие и нудные документы, а удивительно живые страницы с динамически изменяющимся содержимым. Именно динамическая информация делает Web интересным и интерактивным источником информации, а не просто средством, предназначенным для чтения книги с терминала.

Независимо от того, во что вас, возможно, заставят поверить все эти отскакивающие щарики и прыгающие объявления, Web содержит также больщой объем текста. Поскольку мы имеем дело с текстом, файлами, сетевыми коммуникациями и в некоторой степени с двоичными данными, то Perl идеально подходит для Web-программирования.

В этой главе мы не только изучим основы CGI-программирования, но и параллельно получим определенные начальные сведения о гипертекстовых ссылках, библиотечных модулях и объектно-ориентированном профамми-ровании на Perl. В конце главы мы дадим начальные сведения о применении Peri для других видов Web-профаммирования.

Если рассмафивать эту главу как отдельное пособие, следует отметить, что ее (как и любого другого документа объемом меньще пары сотен страниц) недостаточно для изучения более сложных тем, затронутых здесь, в частности объектно-ориентированного программирования и методов использования различных типов ссылок и запросов в WWW. Однако, будучи средством всего лищь предварительного ознакомления с тем, что вас ждет, представленные здесь примеры и пояснения к ним, возможно, побудят вас подробнее ознакомиться с затронутыми темами и дадут вам ориентиры для выбора соответствующих учебников. А если вы любите учиться на практике, они помогут вам сразу написать некоторые полезные программы на основе тех моделей, которые здесь представлены.

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

Модуль CGI.pm

Начиная с версии 5.004, в состав стандартного дистрибутива Perl включается модуль CGI.pm, который все знает и все умеет*.

Этот модуль, который написал Линкольн Штейн, автор хорошо известной книги How to Setup and Maintain Your Web Site, превращает процедуру создания CGI-программ на Perl в легкую прогулку. Как и сам Perl, CGI.pm является платформо-независимым, поэтому его можно использовать практически с любой ОС, от UNIX и Linux до VMS; он работает даже в таких системах, как Windows и MacOS.

Если у вас инсталлирована одна из более ранних версий Perl (но как минимум 5.001) и вы еще не собрхтись переходить на новую, просто получите CGI.pm из CPAN.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 [ 72 ] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103