| div.main {margin-left: 20pt; margin-right: 20pt}Пёрл для чайников. Глава 1 Все нижесказанное ни в 
коей мере не претендует на полноту и достоверность. Заранее хочу 
предупредить вас, что эта статья не сделает из вас супер 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; #Число как таковое
 Если вам нужно для 
вычислений число, то просто не ставьте двойных кавычек. Точка с запятой в 
конце каждой строки - это собственно... конец строки, из чего следует, что вы 
можете написать всю программу в одну строку, но нам что - строк жалко что ли:) 
Из выше сказанного есть исключение: знак # говорит о том, что всё, что есть в 
строке после него - это комментарий, и к программе уже не относится.Знак 
ромб <> - это по умолчанию <STDIN> или, говоря понятным языком - 
стандартный ввод с монитора (разъясняю: на мониторе появляется запрос, а вводите 
вы конечно же через клаву. Потом нажимаете ентер и введенное значение уже в 
переменной Perl, если она была задана). Вся хитрость добавления этого ромба в 
нашем случае в том, что он будет запрашивать у вас этот ввод, пока вы не нажмете 
кнопку "enter", а так как в программе не указанно, что делать с этим вводом, то 
perl о нём просто забудет и станет считать нашу программку завершенной. И 
врезультате выполнения этой программы мы с вами увидим на своих мониторах текст 
Hello, world! .
 Теперь немного 
усложним нашу программку: print "enter 
your name: ";$name = <>;
 print "hello $name!";
 <>;
 Вам следует уяснить, 
что программы выполняются построчно, т.е. сначала первая строка, после неё 
вторая и т.д.. Итак, в первой 
строке мы выводим предложение ввести имя пользователя. Во второй строке мы его 
считываем в переменную $name. $name - это, как уже говорилось, скалярная 
переменная Perl, которая начинается знаком доллара. Забегая вперёд, скажу вам, 
что кроме переменных, начинающихся с доллара, бывают также массивы (@массив), 
хэши (%хеш), и ещё несколько видов, о которых пока рано рассказывать. Между 
переменной и ромбом стоит равенство, это значит, что мы присваиваем переменной 
результат запроса. В третьей строке мы выводим слово hello, а после него выводим 
то, что хранилось в переменной $name. В нашем случае это имя, которое мы просили 
ввести. Сделаем ещё одно 
отвлечение, в котором я расскажу вам, что можно делать с переменными... С ними 
можно делать ВСЁ! И это не преувеличение. Например, возможно 
такое: $a = 3; 
$b = 4;
 $c = $a+$b; #Сложить две переменные и
 #присвоить их 
третьей
 print $c; # Вывести получившееся число
 print $a+$b; # тоже самое, 
только без
 # привлечения третьей переменной
 Надеюсь с этим всё 
понятно... А пока до некоторых доходит, мы напишем программку, которая выполняет 
команды ДОС dir. Для тех кто не знает - dir - команда выводящая на экран 
содержимое директории в которой вы находитесь. $dos = 
`dir`;print $dos;
 <>;
 Эта программка 
считывает в переменную $dos результат выполнения команды dir, которая заключена 
в обратные кавычки, (если бы это были простые кавычки, то получилась бы не 
команда, а просто слово) после чего выводит на монитор этот самый 
результат. Теперь так сказать 
вернёмся к нашим баранам, вернее пока лишь к барашкам:) Мы научились выводить на 
экран необходимый нам текст, получать информацию от пользователя, а так же 
узнали, что ДОС команды в обратных кавычках будут выполняться как ДОС команды:) 
Самое время написать программку, которая будет запрашивать не что иное, как эти 
самые команды: print 
"enter comand: ";chmod($com = <>);
 print 
`$com`;
 <>;
 Из соображений 
безопасности крайне не рекомендую вводить команду FORMAT, догадайтесь почему:) 
Из новшеств нужно выделить появление команды chmod(). Эта команда убирает из 
информации, которую мы получаем в запросе знак новой строки n, который есть там 
по умолчанию. То, что находится во второй строке - это сокращенная запись двух 
строк: $com = 
<>; #Считать в $comchmod ($com); #Убрать всё 
лишнее
 Выгадываем мы этим 
всего несколько символов, но ведь всё равно приятно:)  На этом 
считаю, что первые шаги вы прошли и готовы продолжить тернистый путь изучения 
Perl. NS 
 
 |