ПредишенСледващото

Learning Perl, част 1

Подобно на всички съвременни езици за програмиране, Perl е обектно-ориентиран. Също така е възможно програмиране мрежа (например, програмиране гнезда). Програма в Perl се пренася лесно (добре написан сценарий ще работи на Linux, BSD, Solaris, DOS, Win9x, NT, MacOS, OS / 2, AmigaOS, VMS и други платформи, без необходимостта от изходния код модификация).

Без значение колко дълго можете да използвате Linux - със сигурност вече сте чували за Перлата; дори е възможно, че сте изпълнили огромен брой скриптове, без да го знаят. Програми като inews, огледало, Debconf, майордом, SIRC и много други са написани на Perl и Perl само. Ако използвате дистрибуция Debian, "склонил" zgrep на Packages.gz файла - се оказва, че 382 пакети зависят от Perl (това означава, че по-голямата част от пакета е написан на Perl) и в продължение на 28 други пакети се препоръчва да има Pearl.

Защо Pearl добър?

Pearl е красива в текстообработка, както и за интегриране в едно цяло различни неща. В крайна сметка, за скриптов език (скриптове) - всички тези различни неща в действителност са едно и също нещо.
--Джон Ousterhout, създател на Tcl скриптов език.

Подобно на всички съвременни езици за програмиране, Perl е обектно-ориентиран. Също така е възможно програмиране мрежа (например, програмиране гнезда). Програма в Perl се пренася лесно (добре написан сценарий ще работи на Linux, BSD, Solaris, DOS, Win9x, NT, MacOS, OS / 2, AmigaOS, VMS и други платформи, без необходимостта от изходния код модификация). Програмата е бързо отстраняване на грешки, тъй като тя не трябва да бъде съставен - просто промените кода и да го изпълняват. Има много допълнителни модули (за изпълнение на стандартни разтвори), които ще се представят всяка задача. Налице е също така Цялостен Perl Archive Network (CPAN) - най-доброто може да мечтае Perl-програмист.

Да. Впечатляващо. Но същността на перла?

Добър въпрос. Надявам се, че в около една година след началото на програмирането в Perl, вие ще бъдете в състояние да ми даде отговор на този въпрос. Описание какво друго - винаги има място съоръжение в определени рамки. затварянето му в нещо като концептуална кутия. Все още се опитвам да намеря някой, където Pearl вмести напълно (добре е да продължава да се намери такъв надежден заключване).

Това не трябва да бъде написана на Perl?

Хм. Лично аз не бих напиши текстообработваща програма с графичен интерфейс, компютърни игри, графичен браузър. Не, разбира се, е възможно в Perl за създаване на красиви потребителски интерфейси, но все пак мисля, че има по-подходящо за целите на тези езици. Като предупреждение начинаещ програмист, ще отбележа: "за един човек с чук всеки проблем изглежда като пирон."

Също така имайте предвид, че той не е Pearl написани на Perl, както и ядрото на Линукс. Да оставим на програмиране на ниско ниво C / C ++ и Assembler'u. КРЕДИТ всеки програмист трябва да е фразата: ". Някои инструменти за конкретни задачи"

Последно предупреждение преди началото.

Ако вече сте малко по-запознати с перла и да видим, че моят начин на представяне, както и решения са различни от тези, които вече научих от вас, просто не забравяйте мотото на Perl "Има повече от един начин за решаване на проблема" (Има повече от един начин да го направя или TMTOWDI [четат като "Тим-днес ']). Това е същността filoofii Pearl. Разбира се, корекция на явни грешки в моя текст са добре дошли.

Тези от вас, които са чели предишните си серия от статии за Shell програмиране, не забравяйте, че скриптът започва с така наречената "хеш-взрив" (лира # и удивителен знак!) Или линия "вертеп":

Това е да се гарантира, че черупката зареди под-черупка, където ще се изпълнява кода си. Същата нужда от Перла:

Низът може да варира в зависимост от това къде сте задали интерпретатора на Пърл.

Не забравяйте, изискванията, на които трябва да бъдат изпълнени хеш-бам ред:
  1. Тя трябва да бъде на първо място в сценария
  2. Grille # трябва да е в началото на линията. Разстояния между # и. не е позволено.
  3. Необходимо е да укажете пълния път, а не само на името на изпълнимия файл.

Добре. Нека се опитаме да напише първата ни писменост в Perl:

#! / ЮЕсАр / хамбар / Perl
# "Сбогом" - модерен и ултра-депресивно замяна "Hello World"


отпечатва "Сбогом, жесток свят \ н!";
Прекратяване на връзката с по $ 0;

О, между другото. Малко за това как да пишете код.

Аз лично съм далеч от съвършенството в писмен код: преди, аз често пише програми, които са написани и никога не четат, защото те не могат да разберат. Но аз винаги се опитвам да се подобри и да се подобри.

Pearl е на така наречените "невалидни" - разделите и пространства - като те заслужават - че се игнорира. В тази връзка, можете да структурирате код, както ти е удобно за докладите на външни лица да има смисъл от вашата програма. Например:

@boats = ( "ALOA", "Cheoy Lee", "Pearson", "Mason", "Swan", "Westsail", "S2", "Petersen", "Hereshoff"); # Списък на лодки

По този начин, ние сме внедрили имена лодка процес на пълнене масив "@boats. Не е зле, но можете да направите същото, но в по-хуманен начин:

Този начин на представяне на програмата за изпитване не е прерогатив на Перлата - по-голямата част от съвременните езици позволи допълнително "празен", за да направите текста по-лесно да се чете. В тази поредица от статии, аз ще се опитам поне да покаже, че това означава добър програмен стил (по мое мнение) и бих искал, че на всеки, взе предвид този аспект.

В Perle всичко подчинено на принципа на лекотата на използване. Pearl - така наречената "либерален" езика, когато, например, не можете да дефинирате променлива като този, който може да отнеме само стойностите в масива на 32-битови числа с плаваща запетая положителен.

В Perl има 3 вида променливи: скаларна, масив, и хеш. Въпреки ужасното име, това е доста проста: това е просто една променлива, която съхранява данни въз основа на различна структура.

променливи от тип "масив" - последователно номерирани списъци на скалари
    Означен със символа "@" (@v, @list, @variable). Например:
Променливи като "диез" - списъци на скалари индексирани
    Хеш са обозначени с "%" (% хора,% х,% this_is_a_hash). Например:

Моля, имайте предвид, че данните се съхраняват в масив по ред, определен от номера на елемент от масива, и хешове - не: препратка към първия елемент на хеш не означава призив към члена, че вие ​​сте първите, които поставят в хеша. Достъп елементи, носени от индекса на хеш, и не им положение.

С помощта на тези три типа на променливите, можете да съхранявате всички данни (и се отнасят до тях) - всички от които са лесни.

Като се има предвид факта, че променливи могат да съдържат различни типове данни (цифри и стрингове) за операции с тези променливи се нуждаят от различни оператори

За да се помни, да се използва правилото: когато се сравняват букви (стрингове), използвайте букви.

Тъй като аз обичам да давам конкретни примери, ето рецепта за това как да се превърне сиво и нервен срив:

Хм. Програмата се казва, че няма разлика. Това, разбира се, може да се отрази на политическата ситуация в страната, но какво да кажем за нашите сравнения. Да. Разбира се. Ние трябваше да използвате оператори низ сравнение.

Сега оператори за сравнение работят колкото е нужно (да, и политическа логика почива. Но аз съм се започне да се отдалечава от темата).

Между другото, защо първия пример Perl реши, че "Ал" и "Джордж" - едно и също нещо? Откога програмата започна да разбира политиката?

Причината всъщност важна, тъй като е въпрос на това как Perl прави разлика между "истинска" (вярно) и "невярно" (фалшиво). Като се има предвид, че всеки възможен тест -. "Ако", "а", "до" и др зависи от този принцип на разграничение, ние трябва да го разбере.
  • "0" - това винаги е "лъжа" (независимо от това дали стойността на низ или число)
  • Всички недефинирани променливи (тези, които не са възложени на стойност) - "лъжа."
  • Празни редове - '' или '' - ". Лъжа"
  • Всичко останало - "истината".

И сега се опитват да се справят с тези момчета - истина или лъжа?

Отговорът - в края на статията.

Друг важен момент е променлива интерполация, принципът чрез който да се тълкува определиха дали или не израз затворени в кавички. Например:

Op с. Какво имаме?

Нашето име крава е $ име.

Лично аз не мисля, че кравата, която наистина се зачита би отговорил на такова име - $ име (аз дори не говоря за колко трудно би било да се каже, че име). И как ще се направи още кравата отговори?

Всичко! Сега кравата - наш! (Тези от вас, които смятат, че нещо лошо - да бъде незабавно прекратено). И всичко това благодарение на Пърл. Казах ти, че с Perl, можете да направите всичко.

Но какво, ако искаме да се покаже името на променлива? Това не е проблем. В Perl че е лесно да се реши:

Можете да отпечатате всяко метасимволът (т.е. всеки резервиран в Perl), ако пред тях поставя наклонена черта ( ""). Обърнете внимание на това:

Изберете какво предпочитате. Основното нещо е да се разбере разликата. Имайте предвид, че различна стойност в израз "Печат" на са разделени със запетая, ако е имало запетая, а след това изразът е придобил съвсем различно значение, но повече за това следващия път.

Преди да завърша тази статия, бих искал да ви дам още един важен съвет. Винаги в първия ред на скрипта ви, използвайте "-w":

Това ще увеличи продукцията на съобщенията за проблеми в тълкуването на сценария. Докато вие сте нов - не забравяйте да използвате тази опция, но за експертите - това е двойно по-необходимо. Грешките не изчезват с опит - те са просто поумняват :)

По това време ние се на кратка разходка в света на програмирането в Perl. През следващия месец ще отидем малко по-нататък. Може би трябва да разследва масиви и хешове. или за първи път, за да се потопите в океана на ум-разпенващ функции "регулярни изрази" Перла (regexes или регулярни изрази). Моят съвет - той се опита на практика, че ние сме се научили, експеримент - от моя собствен опит знам, че това е най-добрият начин да се научи език - да експериментирате, докато границата на възможностите на текущото си ниво на знания е достигнат, а след това се обадите за помощ някой, който знае повече. Не забравяйте, че вие ​​никога няма да получите добри отговори, ако не знаете проблемите.

Успех в експерименти с Pearl!

Отговорът на въпроса: Всички хора са равни "истинска". Нито един от изразите, не отговаря на изискванията на "фалшиво" стойност. "00" - това не "0" е като "-1". Интервал "" - не е празен низ "," и "5-5", ако изразът не прилича на нищо, не е равно на 0.

Връзки: "Perl пълно представяне.", Мартин С. Браун

Свързани статии

Подкрепете проекта - споделете линка, благодаря!