
- •Введение
- •Немного о cgi
- •Как работает Perl
- •Первая программа на Perl
- •Переменные и типы данных в Perl
- •Строковые данные
- •От простого к сложному
- •Запуск интерпретатора Перл
- •Синтаксис
- •Переменные
- •Встроенные переменные Перл
- •Регулярные выражения (шаблоны)
- •Операторы и приоритеты
- •Встроенные функции
- •Группа системных вызовов
- •Подпрограммы
- •Модули (packages)
- •Форматы
- •Отладка Перл программ
- •Запуск интерпретатора Перл.
- •Ассоциативные массивы в Perl.
- •Что такое Perl?
- •Как Perl обрабатывает данные из форм
- •Как генерируются web-страницы "на лету"
- •В чем различие между программой и скриптом?
- •Альтернативы Perl
- •Что вам требуется, чтобы запустить Perl
- •Где взять Perl
- •Этапы создания скрипта
- •Основные части Perl скрипта
- •Пример скрипта с формой
- •Обсуждение: Настройка скрипта
- •Обсуждение: Чтение данных из формы
- •Обсуждение: Что делать с данными?
- •Обсуждение: Запись в файлы
- •Пример: Создание новой html страницы
- •Пример: Добавление в конец файла
- •Пример: Добавление в середину существующего файла
- •Пример: Отправка данных по e-mail
- •Обсуждение: Создание web-страниц "на лету"
- •Встроенные переменные Перл.
- •Модули (packages)
- •Конструкторы и деструкторы
- •Создание библиотеки
- •Стандартные Перл библиотеки
- •Pragma библиототеки
- •Операторы и приоритеты.
- •Tr/таблица1/таблица2/cds y/таблица1/таблица2/cds
- •От простого к сложному.
- •Переменные
- •Скалярные значения
- •Конструкторы скаляров
- •Конструкторы списков
- •Практический Перл для начинающего.
- •Add_guestbook.Pl - запись в книгу
- •Read_guestbook.Pl - чтение книги
- •Подпрограммы
- •Private переменные
- •Переменные типа local
- •Прототипы (prototypes)
- •Ссылка как параметр
- •Переопределение встроенных функций
- •Автозагрузка
- •Регулярные выражения (шаблоны) Perl.
- •Синтаксис
- •Декларации (объявления)
- •Простое предложение
- •Сложные предложения
- •Операторы управления циклом
- •Цикл for
- •Цикл foreach
- •Оператор goto
- •Pod операторы. Документирование программ
- •4.Языковые конструкции Perl 4.1.Ссылки
- •4.5.Подпрограммы и модули
- •Введение
- •Cтруктуры данных
- •Скалярные величины
- •Простые массивы
- •Ассоциативные массивы
- •Основные понятия
- •Простые операторы
- •Составные операторы
- •Термы и операторы списка
- •Оператор ``стрелка''
- •Экспоненциальный оператор
- •Символьные унарные операторы
- •Операторы связки
- •Бинарные операторы
- •Операторы сдвига
- •Операторы сравнения
- •Операторы эквивалентности
- •Побитовое и, побитовое или и Исключающее или
- •Логическое и и логическое или
- •Оператор диапазона
- •Условный оператор
- •Операторы присваивания
- •Оператор ``запятая''
- •Логическое не
- •Логическое и, или и Исключающее или
- •Оператор чтения из файла
- •Оператор замены строки
- •Оператор замены множества символов
- •Основные понятия
- •Символьные ссылки
- •Регулярные выражения
- •Зарезервированные переменные
- •Встроенные функции
- •Подпрограммы
- •Конструкторы и деструкторы пакетов
- •Объектная ориентация
- •Объекты
- •Вызов метода
- •Деструкторы
- •Установка поддержки perl для iis3 под Windows nt Почему была написана эта заметка
- •Кратко о perl-модулях от Active State
- •Что скачивать
- •Как устанавливать
- •Как проверить
- •Что дальше
- •Введение в Perl Пару слов от автора
- •Краткое лирическое отступление насчет cgi
- •Итак ...Приступим...
- •Переменные среды cgi
- •Прекрасный язык Perl
- •If(условие)оператор;
- •Заголовки запросов и ответов
- •Права Доступа
- •Генерация ответа
- •Обработка Форм
- •Изображения ismap
- •Анимация
- •Несколько советов по отладке
- •Кто посещает мою страничку?
- •Гостевая книга
- •Счетчик посещений
- •Введение
- •Взаимодействие с субд
- •Основные функции доступа
- •Дополнительные функции
- •Переменные
- •Переменные для подстановки
- •Написание модулей cgi
- •Обработка файлов формата dbf
- •Изучаем Perl. Глава 1
- •Происхождение
- •Похож на Си?
- •Стоимость и лицензия
- •Проинсталлирован ли у вас Perl?
- •Ваша первая программа на Perl
- •Создание программы
- •Глава 2
- •Числовые литералы
- •Стринговые литералы
- •Строки с одинарными кавычками
- •Строки с двойными кавычками
- •Строки с обратными одинарными кавычками
- •Массивы
- •Вложенные массивы
- •Использование диапазона значений
- •Глава 3
- •Типы операторов
- •Бинарные арифметические операторы
- •Унарные арифметические операторы.
- •Логические операторы
- •Пример оператора логического "и" - (&&)
- •Пример оператора логического "или" - (||)
- •Пример оператора логического "не" - (!)
- •Битовые операторы
- •Операторы числовых отношений
- •Операторы отношений строк
- •Использование ternary-оператора
- •Оператор интервала ".."
- •Использование оператора интервала
- •Строковые операторы "." и "X"
- •Использование оператора конкатенации
- •Использование оператора репликации (повтора)
- •Операторы присваивания
- •Глава 4
- •Строковые функции
- •Функции для работы с массивами.
- •Немножко о модуле cgi.Pm в Perl.
- •Жемчужные формы
- •Как "оживить" Perl/cgi скрипт Введение
- •Метод 1
- •Метод 2
- •Метод 3
- •Введение
- •Для чего нужен Perl?
- •Структура Perl-программ
От простого к сложному
Прежде чем приступить к последовательному ознакомлению с
не знакомым для вас языком, должен оговориться и сказать, что
все примеры да и сам язык описанию которого посвящена эта книга
это Perl версии 5.003 для операционной системы FreeBSD версии
2.01. Существуют реализации этого языка для операционных
систем OS/2 , MS-DOS и Windows NT но они немного отстают по
возможностям от оригинала, рожденного в недрах Юникса.
Пример 1 Введите в файл test1.pl следующие строки:
#!/usr/local/bin/perl
# Содержимое файла test1.pl
print "Наше Вам с кисточкой!\n";
А теперь подробно разберем каждую строку.
#!/usr/local/bin/perl
Данная строка должна быть первой в любой Пел-программе.
Она указыванет системному интерпретатору что данный файл - это Пел-программа.
# Содержимое файла test1.pl
Эта строка называется комментарием. Она всегда начинается
символом '#' и заканчивается таким объяснением что как говорил
великий Ходжа Насреддин "это тонкий филосовский
вопрос", а говоря простым языком здесь можно писать все что угодно.
Даже пожелание руководству. Уж здесь оно точно до него не
дойдет.
print "Наше Вам с кисточкой!\n";
Самая последняя ну и конечно главная. Она просто выводит
на экран надпись "Наше Вам с кисточкой!".
Здесь слово print - это команда "вывести". Все что в кавычках - это символы,
\n - перевод строки и ';' - признак конца команды. Он обязателен.
В одной строке может быть несколько команд и все они должны завершаться
символом ';'. После него может быть символ '#' - это значит остаток
строки считается комментарием.
Над этой строкой автору
пришлось больше всего поломать голову так как в нее постоянно
лезли какие то странные "hello", "hello all", "Построемся и спасемся",
"Строй наше спасение" и т.д и т.п.
Если вы никогда не работали с Пел, то бъюсь на спор в 10$, что данная
программа сразу у вас не заработает!
Не потому что она не верна, а потому что "Нельзя объять необъятное".
Сразу, потом можно, да и то частями.
Сначало сделайте ваш файл test1.pl исполняемым. Для этого введите
команду:
chmod +x test1.pl
Затем проверьте где у вас Пел. Для этого введите:
which perl
Система вам выдаст что то вроде: /usr/bin/perl
Если: perl: Command not found.
То тогда закройте книжку и ложитесь спать. У вас просто нет Пел или
он не установлен. А мне остается послать вас к системному администратору
или к man (для переводчиков- man сокращение от manual а не то что вы подумали).
Теперь проверьте что бы строка 01 содержала то что выдала команда which.
Если совпало то введите:
test1.pl
и бъсь на 50$ что и теперь программа не заработает, так как правильней
ввести:
./test1.pl
Если я проиграл, то не радуйтесь. Да же если вам удалось запустить программу
как test1.pl это значит, что у вас будут неприятности в будущем.
Пример 2 Данная программа выводит на экран все ваши секреты. А именно файл /etc/passwd.
#!/usr/local/bin/perl
open(PASS, ")
{
print;
}
close(PASS);
Пояснения:
open(PASS, ")
Читать по одной строке файла в переменную по умолчанию $_.
{
Открыть блок операторов.
print;
Вывести на экран переменную по умолчанию $_
}
Конец блока.
close(PASS);
Закрыть файл. Этого можно и не делать так-как файл автоматически
закроется после окончания программы.
Результат работы этой программы тот же что и команды cat /etc/passwd.
По экрану пробежали непонятные строки но зато теперь перед вами
открыты горизонты Пел программирования!
Все последующие примеры будут развитием этой программы и она
превратится из гадкого утенка в прекрасного лебедя (не генерала).
Пример 3 Разделенеие полей.
#!/usr/local/bin/perl
open(PASS, ")
{
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
print "$login \t $name\n";
}
close(PASS);
Пояснение:
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
Присвоить указанным переменным поля входной строки, считая разделителем символ ':'.
print "$login \t $name\n";
Вывести login - имя пользователя и его описание. Поля разделены символом '\t' - табуляции.
Пример 4 Вывести имена пользователей отсортированных по группам.
#!/usr/local/bin/perl
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
while()
{
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
print "$login \t $gid \t $name\n";
}
close(PASS);
Поеснения:
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
В данной строке весь фокус! Входным файлом для нашей программы
стал выход команды sort которая и отсортирует входные данные.
Форматированный вывод.
Ну а теперь напечатаем на экране все наши данные в удобной форме.
#!/usr/local/bin/perl
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
while()
{
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
write(); # Форматированный ывод данных.
}
close(PASS);
exit 0; # Завершение программы
############ Описание формы вывода ##################
format STDOUT =
Пользователь: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$name
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$name
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$name
--------------------------------------------------------------------------------
Login:@<<<<<<<< Uid:@<<< Gid:@<<< Home dir:@<<<<<<<<<<<<<<<<<<<<<
$login, $uid, $gid, $home_dir
--------------------------------------------------------------------------------
. # Это последняя строка программы
Фрагмент результата:
Пользователь: Калужский ликеро-водочный завод. Лучшие водки и
настойки. Звонить только перед праздником Кострикову
Анатолию т. 2-23-06,,,
--------------------------------------------------------------------------------
Login:uucryst Uid:1055 Gid:66 Home dir:/var/spool/uucppublic/
--------------------------------------------------------------------------------
Пользователь: Торговый Дом Дилен,,,
--------------------------------------------------------------------------------
Login:uudilen Uid:1075 Gid:66 Home dir:/var/spool/uucppublic
--------------------------------------------------------------------------------
Если вам интересно узнать как работает эта программа, то переверните
страницу и начините свое путешествие в мире Пел.
Желаю удачи!