Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Введение в Perl - Маслов Владимир Викторович - Страница 1
Владимир Викторович Маслов
Введение в Perl
Copyright (C) Маслов Владимир Викторович
Все замечания и предложения направляйте по адресу:
[email protected] /* */
[email protected] /* */
Все примеры в книге проверены для Перл версии 5.003
операционной системы Unix FreeBSD 2.1.0.
От простого к сложному
Прежде чем приступить к последовательному ознакомлению с не знакомым для вас языком, должен оговориться и сказать, что все примеры да и сам язык описанию которого посвящена эта книга это 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, «</etc/passwd») || die «Файл не найден!»;
while(<PASS>)
{
print;
}
close(PASS);
Пояснения:
open(PASS, «</etc/passwd») || die «Файл не найден!»;
«Открыть» файл т.е. создать указатель файла PASS и в случае ошибки выдать «Файл не найден!» и закончить программу.
while(<PASS>)
Читать по одной строке файла в переменную по умолчанию $_.
{
Открыть блок операторов.
print;
Вывести на экран переменную по умолчанию $_
}
Конец блока.
close(PASS);
Закрыть файл. Этого можно и не делать так-как файл автоматически закроется после окончания программы.
Результат работы этой программы тот же что и команды cat /etc/passwd.
По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Перл программирования!
Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала).
Пример 3 Разделение полей.
#!/usr/local/bin/perl
open(PASS, «</etc/passwd») || die «Файл не найден!»;
while(<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(<PASS>)
{
($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(<PASS>)
{
($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
- 1/20
- Следующая