Часть первая
Заранее хочу предупредить вас, что эта статья не сделает из вас
супер PERL программиста, но она даст вам некоторые необходимые
начальные сведения, которые помогут вам в дальнейшем изучении этого
интереснейшего языка программирования.
Эту статью я решил написать, после того как узнал насколько сложно
"врубиться" во всё, даже если у вас есть под рукой какое либо пособие
по PERL. Везде, уже в самом начале, начинают ссылаться на какие-то
загадочные термины и команды, а вам остаётся только удивлённо хлопать
глазами, или (если вы всё же что-то поняли) заставить эти программы
работать (не "как надо", а вообще!). Эту статью можно было бы назвать
"PERL для чайников", если бы она охватывала весь материал, но здесь я
ставлю перед собой цель дать вам лишь необходимые начальные понятия, и
так сказать "подготовить к дальнейшим сражениям":). Хотя вполне
возможно, что в дальнейшем, "по просьбам трудящихся", эта небольшая
статья разрастётся в нечто большее.
Итак... начинаем!
Для начала сообщу вам, что PERL необходимо установить на ваш
компьютер. Эту, казалось бы, простую операцию некоторые мои знакомые
начисто пропускали, а после, написав простенькую программу, долго
пытались её запустить... ;) Наиболее доступный пакет PERL (на мой
взгляд) - это ActivePerl, хотя, этот пакет ориентирован на
пользователей Windows, а если у вас UNIX, то можно скачать что нибудь
родное с www.perl.com. Так или иначе, вы достанете и поставите себе
perl (если уже этого не сделали). Так вот: у вас появится новая папочка
"perl", но это вовсе не значит, что все проги нужно помещать именно
туда :) Perl, там сидящий, лишь исполняет все ваши гениальные творения
с расширением *.pl , а уж где они сами находятся - одному юзеру
известно :) (справедливо для пользователей windows с установленным
пакетом ActivePerl, т.к. он ассоциирует файлы *.pl).
Т.к. как эта статья рассчитана в первую очередь на пользователей
windows, то считаю себя обязанным рассказать вам, что для программ,
исполняемых в этой операционной системе вовсе не обязательно начинать
каждую программу со строки:
#!/usr/bin/perl
Всё дело в том, что язык этот создавался на базе ОС UNIX, а эту
строку нам пытаются передать в "наследство" от их операционки. Однако
вам следует помнить, что на сервере (если вы решите скинуть туда свои
проги) может стоять и UNIX.
Теперь немного о методе написания.
Советую вам для начала
использовать простой блокнот, чтобы запомнить все команды и синтаксис
программирования. В дальнейшем, можно использовать какой нибудь
редактор, но это уже не спортивно:), и уж тем более нежелательно для
тех, кто только знакомится с этим языком программирования, да и
программированием вообще.
Практически все руководства по этому языку начинаются с самой простой программы, которая выглядит примерно так:
print ("hello, WORLD!n");
Некоторые из вас уже, наверное, скопировали приведенную программу в
свой файл и заметили, что она быстренько открывается и также быстро
закрывается. Это связанно с тем, что программа есть программа, и после
того как она выполнится - сразу же закроется, поэтому добавьте к
программе ещё одну строку с следующим содержанием:
<>;
В итоге всё это примет следующий вид:
print ("hello, WORLD!n");
<>;
... Не так уж и просто выглядит для непосвященного... Даже немного
пугающе... Но это только для непосвященных, на самом деле всё - проще
некуда! :) Не верится? Сейчас докажу.
Во-первых, вам нужно узнать,
что print - это команда, которая выводит информацию на стандартный
вывод STDOUT (STanDart OUT или, проще говоря - вывод на монитор).
Во-вторых,
непонятность в виде n - это переход на новую строку (newline), но не
программы, как могли бы испугаться некоторые, а информации на экране,
т.е. если бы вы продолжили бы текст, заключенный в кавычки, то после
этого символа он был бы напечатан с новой строки. А если вам
понадобилось бы в самом тексте использовать обратный слеш (шелс:), то
перед ним надо поставить еще один шелс. Например:
print "a"; #Команда, после которой Perl
#выведет сигнал на SPICER
print "\a"; #Perl просто выведет на экран a
Затем хочу вас обрадовать: скобки нафиг не нужны:) Их использование
зависит целиком от вашего настроения, хотя в мануалах говорят, что это
якобы помогает выделить текст в программе. В общем - кому как больше
нравится...
Как вы уже наверно догадались - кавычки нужны для
заключения в них текста, так что осталось два непонятных пунктика. Но
перед тем как остановится на них, считаю необходимым объяснить вам
какая бывает информация в Perl.
Фундаментальной единицей информации в Perl является скаляр (scalar),
т.е. отдельное значение, хранящееся в отдельной переменной.
$a = "hello, world!"; #Присвоить переменной $a некий текст
$b = 777; #Присвоить переменной $b некое число
В этих переменных хранятся строки, числа и ссылки. При этом
необходимо понимать разницу между числами как таковыми и числами,
содержащимися в строке.
$abc = "123"; #Число в строке
$123 = 123; #Число как таковое
Если вам нужно для вычислений число, то просто не ставьте двойных кавычек.
Точка с запятой в конце каждой строки - это собственно... конец
строки, из чего следует, что вы можете написать всю программу в одну
строку, но нам что - строк жалко что ли:) Из выше сказанного есть
исключение: знак # говорит о том, что всё, что есть в строке после него
- это комментарий, и к программе уже не относится.
Знак ромб <> - это по умолчанию
или, говоря понятным языком - стандартный ввод с монитора (разъясняю:
на мониторе появляется запрос, а вводите вы конечно же через клаву.
Потом нажимаете ентер и введенное значение уже в переменной Perl, если
она была задана). Вся хитрость добавления этого ромба в нашем случае в
том, что он будет запрашивать у вас этот ввод, пока вы не нажмете
кнопку "enter", а так как в программе не указанно, что делать с этим
вводом, то perl о нём просто забудет и станет считать нашу программку
завершенной. И врезультате выполнения этой программы мы с вами увидим
на своих мониторах текст Hello, world! .
Теперь немного усложним нашу программку:
print "enter your name: ";
$name = <>;
print "hello $name!";
<>;
Вам следует уяснить, что программы выполняются построчно, т.е. сначала первая строка, после неё вторая и т.д..
|