Скачать презентацию Введение в Perl Perl является интерпретируемым языком Скачать презентацию Введение в Perl Perl является интерпретируемым языком

Лаб 1 Perl.ppt

  • Количество слайдов: 21

Введение в Perl Введение в Perl

Perl является интерпретируемым языком, созданным программистом Лари Уоллом (Larry Wall) для обработки больших текстов Perl является интерпретируемым языком, созданным программистом Лари Уоллом (Larry Wall) для обработки больших текстов и файлов и расшифровывается, как Practical Extraction and Report Language (язык для практического извлечения данных и составления отчетов).

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

Альтернативы Perl: Существует несколько альтернатив использованию С, Visual Basic - более традиционные компьютерные языки Альтернативы Perl: Существует несколько альтернатив использованию С, Visual Basic - более традиционные компьютерные языки для обработки вводимых данных. Должны компилироваться под определенную платформу. Active. X - включение программных компонент, выполняющихся в браузере. Java. Script, VBScript - обеспечивают некоторую интерактивность HTML страниц, которую HTML обеспечить не может. Cold Fusion - сторонняя программа для связи форм с базами данных. PHP/FI - еще одна сторонняя программа для связи форм с базами данных.

Где взять Perl Существует много различных мест, где можно получить информацию о последних версиях Где взять Perl Существует много различных мест, где можно получить информацию о последних версиях Perl. Общая информация о Perl http: //www. perl. com/perl/index. html Perl для UNIX http: //www. perl. com/perl/info/software. html Perl для Win 32 - http: //ntperl. hip. com

Этапы создания скрипта После того, как вы установили на своем компьютере необходимое ПО, нужно Этапы создания скрипта После того, как вы установили на своем компьютере необходимое ПО, нужно совершить несколько шагов для запуска Perl на вашем узле: Создать форму для вызова скрипта. Создать сам скрипт. Отладить скрипт. Проверить отсутствие ошибок (если это возможно, лучше проверить все возможные пути выполнения программы). Поместить скрипт на сервер и не забыть дать ему права на выполнение. Связать скрипт с формой, вставив его имя в параметр action тэга form. Например:

Основные части Perl скрипта Настойка. Первая часть скрипта обязательно запускает интерпретатор и устанавливает переменный, Основные части Perl скрипта Настойка. Первая часть скрипта обязательно запускает интерпретатор и устанавливает переменный, используемые в теле скрипта. Для запуска интерпретатора необходимо знать правильный путь к программе. Чтение входных данных. Эта часть "считывает" и сохраняет в переменных входные данные в удобной для обработки форме. Эта часть обычно неизменна во всех скриптах. Обработка входных данных. Эта часть соответствующим образом обрабатывает введенные данные. Она может быть простой (около 5 строк) или очень сложной (более 1000 строк) в зависимости от выполняемой задачи. Вывод результатов. Пользователь обычно ожидает какоголибо ответа на свои действия. Эта часть достаточно проста в реализации.

Пример скрипта с формой Шаг 1 - Создание формы <html> <head> <title>Test Form</title> </head> Пример скрипта с формой Шаг 1 - Создание формы Test Form Введите Ваше имя:

Шаг 2 - Создание скрипта Наберите в редакторе текст программы и сохраните в файле Шаг 2 - Создание скрипта Наберите в редакторе текст программы и сохраните в файле testform. pl в каталоге cgi-bin вашего web-сервера. Убедитесь, что первая строка программы содержит правильный путь к программе-интерпретатору #!/usr/local/bin/perl # <-- ПРОВЕРЬТЕ ЭТО # Read and parse input from the web form read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-f. A-F 0 -9])/pack("C", hex($1))/eg; $value =~ s///g; $input{$name} = $value; }

# Save the user output in a file $targetfile = # Save the user output in a file $targetfile = "/usr/local/www/htdocs/names. html"; # <-- ПРОВЕРЬТЕ ЭТО open (NAMEFILE, ">>$targetfile"); print NAMEFILE "Имя: ", $input{'user_name'}, "n"; print NAMEFILE "


n"; close (NAMEFILE); # Send a message back to the user print "Content-Type: text/htmlnn"; print "Спасибо, что заполнили формуn. Нажмите "; print 'сюда'; # <-ЗАМЕНИТЕ ЭТО print ", чтобы увидеть Ваш ввод. n";

Шаг 3 - Тестирование скрипта Вот некоторые примеры того, как это делается: . /testform. Шаг 3 - Тестирование скрипта Вот некоторые примеры того, как это делается: . /testform. pl /usr/local/bin/perl testform. pl c: perl. exe testform. pl Если в скрипте содержатся ошибки, то вы увидите сообщение типа syntax error at testform. pl line 18, near "open" Execution of testform. pl aborted due to compilation errors. В этом случае проверьте текст около указанной строки. Помните, что причина ошибки может быть выше на несколько, иногда достаточно много строк. Исправленный скрипт сохраните, и тестируйте так до тех пор, пока он не выдаст корректных выходных данных: Content-Type: text/html Спасибо, что заполнили форму Нажмите сюда, чтобы увидеть Ваш ввод.

Шаг 4 - Тестирование скрипта с формой Если скрипт работает сам по себе, вы Шаг 4 - Тестирование скрипта с формой Если скрипт работает сам по себе, вы можете оттестировать его с формой: Убедитесь, что web-сервер запущен. Запустите ваш браузер. Наберите URL по которому находится ваша форма (обратите внимание, что строка должна начинаться с http: //, а не с file: //. Введите ваше имя в поле формы и нажмите кнопку "Зарегистрировать". Вы должны увидеть сообщение вроде этого: Спасибо, что заполнили форму Нажмите сюда, чтобы увидеть Ваш ввод.

Комментарии могут располагаться в любом месте программы и начинаются с символа #: # Это Комментарии могут располагаться в любом месте программы и начинаются с символа #: # Это комментарий или open (NAMEFILE, ">$testfile"); #Открываем файл для записи. . . Также хорошей манерой является определение в начале скрипта всех констант и глобальных переменных. (Советую все пути прописывать в виде переменных, особенно если программа содержит более 50 строк, для удобства изменения местоположения файлов). Например: $homepage = "http: //server_name/home/index. html"; Все обычные переменные в Perl начинаются с символа $.

Обсуждение: Чтение данных из формы Имя поля в Имя, определенное форме name= Обсуждение: Чтение данных из формы Имя поля в Имя, определенное форме name="xxx" в тэге поля параметром Данные пользователя Имя: user_name Andy Novikov Компания: co_name Tele. Sputnik Телефон: phone (812) 123 -45 -67

user_name=Andy+Novikov&co_name=Tele. Sputnik&phone=(812)+123 -45 -67 Perl скрипт должен разобрать эту строку по частям и сохранить user_name=Andy+Novikov&co_name=Tele. Sputnik&phone=(812)+123 -45 -67 Perl скрипт должен разобрать эту строку по частям и сохранить в переменных для дальнейшей обработки. Строки, производящие эти действия достаточно стандартны: read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); Эта строка читает данные со стандартного входа и помещает их в переменную $buffer. Длина строки передается скрипту через переменную окружения CONTENT_LENGTH. Как только данные помещены в переменную $buffer вы можете разбить их на отдельные переменные с соответствующими им значениями: @pairs = split(/&/, $buffer); Теперь мы получили массив @pairs со следующими строковыми переменными: [1] user_name=Andy+Novikov [2] co_name=Tele. Sputnik [3] phone=(812)+123 -45 -67 Теперь нам необходимо разбить эти строки на пары параметр-значение: foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; # заменяем плюсы на пробелы $value =~ s/%([a-f. A-F 0 -9])/pack("C", hex($1))/eg; $value =~ s///g; $input{$name} = $value; }

Обсуждение: Запись в файлы open (HANDLE, Обсуждение: Запись в файлы open (HANDLE, "name"); # Открыть файл для чтения open (HANDLE, ">name"); # Открыть файл для записи open (HANDLE, ">>name"); # Открыть файл для добавления в конец HANDLE является любым временным именем, который вы будете использовать как идентификатор файла при проведении операций. Как только файл открыт, вы можете писать в него, используя функцию print: print HANDLE "Этот текст будет помещен в файл как есть. n"; print HANDLE "В этом случае переменная ", $variable, " будет помещена в текст. "; print HANDLE "Переменную $variable можно помещать в текст и так. n"; print HANDLE "Кавычки и др. Спецсимволы ; надо "подсекать". n"; После завершения операций с файлом необходимо его закрыть: close (HANDLE); После этого все записанные данные будут сохранены на диск.

Пример: Создание новой HTML страницы # Определяем переменную, содержащую путь к записываемому файлу $newfile Пример: Создание новой HTML страницы # Определяем переменную, содержащую путь к записываемому файлу $newfile = "c: webserverhtdocsmynewpage. html"; # Открываем файл, используя идентефикатор USERINFO open (USERINFO, ">$newfile"); # Формируем содержимое print USERINFO "nn"; print USERINFO "Информация о регистрацииnn"; print USERINFO "nnДанные регистрации: "; print USERINFO "


n

n"; print USERINFO "Имя: ", $input{'user_name'}, "n "; print USERINFO "Компания: ", $input{'co_name'}, "n "; print USERINFO "Телефон: ", $input{'phone'}, "n

n


n"; print USERINFO " # Определяем" src="https://present5.com/presentation/3/238084906_417633019.pdf-img/238084906_417633019.pdf-19.jpg" alt="Пример: Добавление в середину существующего файла # Определяем" /> Пример: Добавление в середину существующего файла # Определяем переменную, содержащую путь к исходному файлу $origfile = "/pathname/originalfile. htm"; # Определяем переменную, содержащую путь к временному файлу $newfile = "/pathname/newfile. htm"; open(INFILE, "<$origfile"); open(OUTFILE, ">$newfile"); while ($line = ) { printf OUTFILE $line; if ($line =~ //i) {

# Добавляем новые данные в файл: print OUTFILE # Добавляем новые данные в файл: print OUTFILE "nn"; print OUTFILE "Имя: ", $input{'user_name'}, "n "; print OUTFILE "Компания: ", $input{'co_name'}, "n "; print OUTFILE "Телефон: ", $input{'phone'}, "n

n


n"; } } # Закрываем файлы close(INFILE); close(OUTFILE); # Удаляем исходный файл и переименовываем новый в исходный unlink($origfile); rename($newfile, $origfile);

nnСпасибоn"; print "nСпасибо за заполнение" src="https://present5.com/presentation/3/238084906_417633019.pdf-img/238084906_417633019.pdf-21.jpg" alt="Создание web-страниц "на лету" print "Content-Type: text/htmlnn"; print "nnСпасибоn"; print "nСпасибо за заполнение" /> Создание web-страниц "на лету" print "Content-Type: text/htmlnn"; print "nnСпасибоn"; print "nСпасибо за заполнение формы"; print "Мы получили ваше имя, место работы и телефон, "; print " которые вы видите ниже: n"; print "Имя: ", $input{'user_name'}, "n "; print "Компания: ", $input{'co_name'}, "n "; print "Телефон: ", $input{'phone'}, "n

n


n"; print "n";