мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
perl:ex [03/04/2010 16:45] vlasovperl:ex [04/04/2017 17:30] (текущий) – [Урок 8: Работа с ключиками в CGI.pm] vlasov
Строка 1: Строка 1:
 ====== Упражнения и задания к урокам ====== ====== Упражнения и задания к урокам ======
 +
 +===== Урок 0: простые числовые функции =====
 +
 +**Задание:** Написать небольшой скрипт, который вычисляет некоторую числовую функцию, определненную самим программистом
 +(корни квадратного уравнения, факториал натурального числа, числа Фиббоначи, простое число или составное и т.п.) 
 +
 +Примерный образец реализации такого задания может быть [[:perl:ex0|найден здесь]].
 +
 +
  
 ===== Урок 1: ввод/вывод (консоль, локальный файл) ===== ===== Урок 1: ввод/вывод (консоль, локальный файл) =====
Строка 21: Строка 30:
  
 Образец задания 3 [[:perl:ex3|здесь]]. Образец задания 3 [[:perl:ex3|здесь]].
 +
 +**Более простое упражнение.** Взять некоторый многострочный текстовой файл произвольного содержания, в котором встречается определённое слово, например "test", заранее определённое число раз. Написать скрипт, который подсчитывает точное количество вхождений слова "test" в указанном текстовом файле с помощью функции <nowiki>index($str,"test",$pos)</nowiki>, используемой в цикле. Особой оптимизации не требуется, главное -- точный подсчёт встречаемости!
 +
 +Файл для упражнения  [[:perl:task3-0|здесь]].
  
 ===== Урок 4: регулярные выражения ===== ===== Урок 4: регулярные выражения =====
Строка 49: Строка 62:
  
 Примерный образец реализации такого задания может быть [[:perl:ex6|найден здесь]]. Примерный образец реализации такого задания может быть [[:perl:ex6|найден здесь]].
-Образец страницы, использующий данный скрипт, и [[:perl:ex6html|код самой страницы]]+[[http://users.nsunc.com/~vlasov/testform.html|Образец страницы]], использующий данный скрипт, и [[:perl:ex6html|код самой страницы]] 
 + 
 +===== Урок 7: без использования модуля CGI.pm ===== 
 + 
 +Цель урока: простой диалог клиента и сервера, не используя возможности модуля CGI.pm. Данная необходимость может возникнуть для достижения эффективности (каждый запуск модуля несет накладные расходы) или в простейших скриптах, где не нужны большие возможности модуля. 
 + 
 +**Задание 7:** Повторить предыдущее задание, не используя модуль CGI.pm. 
 + 
 +Примерный образец реализации такого задания может быть [[:perl:ex7|найден здесь]]. 
 +[[http://users.nsunc.com/~vlasov/testform2.html|Образец страницы]], использующий данный скрипт, и [[:perl:ex7html|код самой страницы]] 
 + 
 +**Отметим**, что cgi-скрипты можно писать на любом языке программирования, [[perl:ex7pascal|например, на Pascal]], и работать это будет следующим образом: [[http://users.nsunc.com/~vlasov/testpas.html|Образец страницы на паскале]]. 
 + 
 +[[perl:testcgi|тестовая страничка на Баше]] 
 + 
 +===== Урок 8: Работа с "ключиками" в CGI.pm ===== 
 + 
 +Скрипт ниже первым делом пытается считать ключик с именем "mucoo", и если ключик определен, то выводится его значение. Если ключик не определен, то он создается. Значение выбирается по текущему времени в секундах: %%$t = time();%% а время жизни --- один час. При этом выводится вся возможная информация о ключике с именем "mucoo". [[http://users.nsunc.com/~vlasov/cgi-bin/cookie.cgi|Действующий скрипт доступен здесь.]] 
 + 
 +<code perl> 
 +#!/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(); 
 +}; 
 +</code>