Владимир Викторович Маслов
Введение в Perl
Copyright (C) Маслов Владимир Викторович
Все замечания и предложения направляйте по адресу:
maslov@news.kaluga.rosmail.com
Все примеры в книге проверены для Перл версии 5.003
операционной системы Unix FreeBSD 2.1.0.
* От простого к сложному *
Прежде чем приступить к последовательному ознакомлению с не знакомым для вас языком, должен оговориться и сказать, что все примеры да и сам язык описанию которого посвящена эта книга это Perl версии 5.003 для операционной системы FreeBSD версии 2.01. Существуют реализации этого языка для операционных систем OS/2 , MS-DOS и Windows NT но они немного отстают по возможностям от оригинала, рожденного в недрах Юникса.
#!/usr/local/bin/perl
# Содержимое файла test1.pl
print «Наше Вам с кисточкой! »;
А теперь подробно разберем каждую строку.
#!/usr/local/bin/perl
Данная строка должна быть первой в любой Перл-программе.
Она указыванет системному интерпретатору что данный файл – это Перл-программа.
# Содержимое файла test1.pl
Эта строка называется комментарием. Она всегда начинается символом '#' и заканчивается таким объяснением что как говорил великий Ходжа Насреддин «это тонкий филосовский вопрос», а говоря простым языком здесь можно писать все что угодно.
Даже пожелание руководству. Уж здесь оно точно до него не дойдет.
print «Наше Вам с кисточкой! »;
Самая последняя ну и конечно главная. Она просто выводит на экран надпись «Наше Вам с кисточкой!».
Здесь слово print – это команда «вывести». Все что в кавычках – это символы, – перевод строки и ';' – признак конца команды. Он обязателен.
В одной строке может быть несколько команд и все они должны завершаться символом ';'. После него может быть символ '#' – это значит остаток строки считается комментарием.
Над этой строкой автору пришлось больше всего поломать голову так как в нее постоянно лезли какие то странные «hello», «hello all», «Построемся и спасемся», «Строй наше спасение» и т.д и т.п.
Если вы никогда не работали с Перл, то бъюсь на спор в 10$, что данная программа сразу у вас не заработает!
Не потому что она не верна, а потому что «Нельзя объять необъятное».
Сразу, потом можно, да и то частями.
Сначало сделайте ваш файл test1.pl исполняемым. Для этого введите команду:
chmod +x test1.pl
Затем проверьте где у вас Перл. Для этого введите:
which perl
Система вам выдаст что то вроде:
/usr/bin/perl
Если:
perl: Command not found.
То тогда закройте книжку и ложитесь спать. У вас просто нет Перл или он не установлен. А мне остается послать вас к системному администратору или к
Теперь проверьте что бы строка 01 содержала то что выдала команда which.
Если совпало то введите:
test1.pl
и бъюсь на 50$ что и теперь программа не заработает, так как правильней
ввести:
./test1.pl
Если я проиграл, то не радуйтесь. Да же если вам удалось запустить программу как test1.pl это значит, что у вас будут неприятности в будущем.
#!/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.
По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Перл программирования!
Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала).
#!/usr/local/bin/perl
open(PASS, «</etc/passwd») || die «Файл не найден!»;
while(<PASS>)
{
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
print «$login $name »;
}
close(PASS);
Пояснение: