Пособие по написанию WAP сайтов



              

Подробнее о сценарии языка Perl MovieGuideWML.pl



Подробнее о сценарии языка Perl MovieGuideWML.pl


Как вы заметили, когда пользователь производит выбор кинотеатра, приложениеMovieGuide вызывает сценарий языка Perl MovieGuideWML.pl: #!/usr/bin/perl print "Content-type: text/vnd.wap.wml\n\n"; $Buffer = $ENV{'QUERY_STRING'}; $FileName = "../MovieGuide/" . $Buffer . ".wml"; open (MovieInfo, $FileName); while (<MovieInfo>) { print; } close (MovieInfo);
Когда запускается сценарий языка Perl, он открывает файл формата WML, соответствующий выбранному пользователем кинотеатру. Вы уже знаете, что декаMovieGuide.wml передает сценарию название кинотеатра как параметр. Используя содержимое специальной деки кинотеатра формата WML, сценарий языка Perlсоздает второй файл формата WML, который затем отобразит браузер.
Перед тем как вы узнаете, почему приложение использует второй сценарий,важно, чтобы вы поняли, как работает сценарий MovieGuideWML.pl. Первая строка сценария является просто командой, которая сообщает интерпретатору командной строки, где находится интерпретатор языка Perl. Далее print выводитданные, которые браузер использует для создания новой деки формата WML: #!/usr/bin/perl print "Content-type: text/vnd.wap.wml\n\n";
Сценарий использует функцию $ENV для извлечения значения параметра, в нашем случае названия кинотеатра. Далее, сценарий создает путь доступа, например, . .MovieGuide/CineS .wml посредством связи (конкатенации) пути. .MovieGuide/ и имени параметра, например, CineS, а также расширения wml: $Buffer = $ENV{'QUERY_STRING'}; $FileName = "../MovieGuide/" . $Buffer . ".wml";
Сценарий открывает файл и начинает читать и записывать содержимое файладля создания нового файла сценария. Другими словами, сценарий считывает информацию в формате WML из входного файла, затем записывает информацию настандартное выходное устройство (stdout), откуда браузер эту информацию считывает и создает новую деку формата WML. Для управления входными даннымисценарий использует дескриптор файла, который сохраняется в переменнойMovielnf о. Приведем операторы, которые используются в цикле while для обеспечения сценарию считывания и записи файла формата WML: open (MovieInfo, $FileName); while (<MovieInfo>) { print; } close (MovieInfo);
Далее приведем исходный код файла CineS.WML: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0" forua="true"/> </head> <card> <do type="accept" label="Back"> <go href="../MovieGuide/MovieGuide.wml"/> </do> <p align="center"> <b>Cinema 8</b> <br/>1040 South <br/>Sage Way </p> <p align="center"> .......... <br/><i>The Blair Witch Project</i> <br/>4:25, 7:30, 9:15 </p> <p align="center"> .......... <br/><i>Inspector Gadget</i> <br/>4:40, 7:35, 9:25 </p> <p align="center"> .......... <br/><i>Story of Us</i> <br/>7:10, 9:30 </p> <p align="center"> .......... <br/><i>Three to Tango</i> <br/>7:25, 9:30 </p> <p align="center"> .......... <br/><i>Three Kings</i> <br/>7:05, 9:20 </p> <p align="center"> .......... <br/><i>Super Star</i> <br/>7:25, 9:15 </p> <p align="center"> .......... <br/><i>Mystery Alaska</i> <br/>7:05, 9:20 </p> <p align="center"> .......... <br/><i>Runaway Bride</i> <br/>7:00, 9:10 </p> </card> </wml>
Как вы можете видеть, файл начинается со стандартной информации заголовка.Далее, файл определяет единственную карту, в которой используется серия теговабзаца <р> для вывода времени начала фильмов. Используется также элемент<do>, который позволяет пользователю вернуться к предыдущему экрану, который в нашем случае находится в файле MovieGuide.wml в директории MovieGuide: <do type="accept" label="Back"> <go href="../MovieGuide/MovieGuide.wml"/> </do>









Содержание    Назад    Вперед