Задание: Написать небольшой скрипт, который вычисляет некоторую числовую функцию, определненную самим программистом (корни квадратного уравнения, факториал натурального числа, числа Фиббоначи, простое число или составное и т.п.)
Примерный образец реализации такого задания может быть найден здесь.
Задание: Написать небольшой скрипт, который считывает строку с клавиатуры, выводит ее в каком-либо измененном виде, дописывает ее в файл.
Примерный образец реализации такого задания может быть найден здесь.
Задание: Написать скрипт, эмулирующий логин в некоторую систему. Пользователю предлагается ввести имя, потом ввести пароль. Система проверяет существование пользователя, соответствие пароля. По требованию выдается справка, предоставляется возможность выйти из системы, есть некоторые сервисные функции (список логинов и паролей, отсортированные списки числа посещений и времени посещения и т.д.)
Образец задания 2 здесь.
Цель урока: научиться работать с простыми строковыми функциями, такими как index и substr. Основное задание: дан html-файл, в котором каждый тэг расположен не более чем в одной строке. Нужно, построчно считывая файл, найти все тэги и удалить их.
Файл для задания 3 здесь.
Образец задания 3 здесь.
Более простое упражнение. Взять некоторый многострочный текстовой файл произвольного содержания, в котором встречается определённое слово, например «test», заранее определённое число раз. Написать скрипт, который подсчитывает точное количество вхождений слова «test» в указанном текстовом файле с помощью функции index($str,"test",$pos), используемой в цикле. Особой оптимизации не требуется, главное – точный подсчёт встречаемости!
Файл для упражнения здесь.
Цель урока: ознакомить с простейшими приемами использования регулряных выражений в поиске и замене.
Задание 4-1: Решить задачу из предыдущего урока с использованием регулярных выражений.
Образец выполнения задания здесь.
Задание 4-2: В html-файле извлечь URL всех ссылок на доменные зоны .ru и .com (остальные не извлекать) и дать отчет отдельным текстовым файлом построчно. Файл реальный, грязно офромленный, с разрывами строк внутри тэгов.
Файл для задания 4-2 здесь.
Цель урока: ознакомиться с простейшими возможностями формирования html-страницы «на лету» средствами cgi-программирования.
Задание 5: Сформировать динамически на PERL простую html-страницу.
Примерный образец реализации такого задания может быть найден здесь.
Цель урока: ознакомиться с возможностями простого диалога клиента и сервера, используя возможности модуля CGI.pm
Задание 6: Создать в каталоге public_html html-страницу, содержащую форму, одно текстовое поле ввода, кнопку сброса и кнопку выполнения. Создать на PERL скрипт, который в теле динамически генерируемой страницы показывает то, что было введено в поле ввода исходной формы.
Примерный образец реализации такого задания может быть найден здесь. Образец страницы, использующий данный скрипт, и код самой страницы
Цель урока: простой диалог клиента и сервера, не используя возможности модуля CGI.pm. Данная необходимость может возникнуть для достижения эффективности (каждый запуск модуля несет накладные расходы) или в простейших скриптах, где не нужны большие возможности модуля.
Задание 7: Повторить предыдущее задание, не используя модуль CGI.pm.
Примерный образец реализации такого задания может быть найден здесь. Образец страницы, использующий данный скрипт, и код самой страницы
Отметим, что cgi-скрипты можно писать на любом языке программирования, например, на Pascal, и работать это будет следующим образом: Образец страницы на паскале.
Скрипт ниже первым делом пытается считать ключик с именем «mucoo», и если ключик определен, то выводится его значение. Если ключик не определен, то он создается. Значение выбирается по текущему времени в секундах: $t = time(); а время жизни — один час. При этом выводится вся возможная информация о ключике с именем «mucoo». Действующий скрипт доступен здесь.
#!/usr/bin/perl use CGI qw(:standard); $coo = cookie("mucoo"); if (defined($coo)) { #if (1) { print header(-charset=>"utf-8"); print start_html("Your cookie"), p("You cookie was: <b>$coo</b>"), end_html(); } else { $t = time(); $coo = cookie(-name => "mucoo", -value => $t, -expires => "+1h"); print header(-charset=>"utf-8",-cookie=>$coo); print start_html("Setting cookie"), p("You cookie is now: <b>$coo</b>"), end_html(); };