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