Пърл (език за програмиране): Разлика между версии

Изтрито е съдържание Добавено е съдържание
м overlinking
без външни препр. в текста
Ред 11:
|реализации =
|диалекти =
|повлиян_от = [[AWK]], [[C (език за програмиране)|C]], [[C++]], [[Lisp]], [[Pascal]], [[Sed]], [[Smalltalk 80]], [[Unix shell]]
|повлиял = [[Python]], [[PHP]], [[Ruby]], [[ECMAScript]], [[LPC]], [[Windows PowerShell]], [[JavaScript]], [[Falcon]], [[Perl 6]], [[Qore]]
|платформа = [[Cross-platform]]
Ред 28:
 
== Основни характеристики на Perl ==
В Perl са заимствани концепции от доста езици – [[C (език за програмиране)|C]], [[awk]], [[sed]], [[Lisp]] и др. Най-силните му черти са регулярните изрази ([[английски език|англ]]. ''regular expression'', често съкращавано на ''regex''), вградените сложни [[структури от данни]] (обикновени и асоциативни масиви) и един от най-големите в света набори от свободно достъпни модули [http://cpan.org/ [CPAN]]. На Perl може да се пише [[процедурно програмиране|процедурно]], [[обектно-ориентирано програмиране|обектно-ориентирано]] и [[функционално програмиране|функционално]] (поддържа [[Затваряне (информатика)|затваряния]], познати още като обвивки, една от най-мощните абстракции в компютърната наука). Perl е [[слабо типизиран език]]. Той е интерпретиран, като програмата първо се компилира до машиннонезависими инструкции ([[байткод]]), които се изпълняват от интерпретатора. За разлика от [[Java]] обаче байткодът не е лесно достъпен, благодарение на което са избегнати редица проблеми с обратната съвместимост. Интерпретаторът на Perl е написан на C и е преносим на огромен брой платформи и [[операционна система|операционни системи]]. Програмата [http://www.indigostar.com/[perl2exe.htm perl2exe ]] и модулът [http://search.cpan.org/~autrijus/PAR-0.85_01/script/pp [pp]] могат да бъдат използвани за произвеждане (генериране) на изпълними програми от скриптове на Perl.
 
== Предимства на езика ==
=== Общността CPAN ===
CPAN (англ. ''Comprehensive Perl Archive Network'', в превод ''Изчерпателна мрежа от архиви на Perl'') представлява огромна колекция от софтуер написан изцяло или отчасти на Perl. Основната градивна единица на този софтуер е модулът. Съществуват незадължителни, но препоръчителни (и често спазвани на практика) указания за писането на модули за Perl, с необходимата им документация, която често с простотата и стандартността си превъзхожда документацията на много комерсиални продукти.
 
Разработчиците на Perl създават програмни модули, разрешаващи разнообразни проблеми за почти всички [[операционна система|операционни системи]] и дори програмни езици. Тези модули обикновено са достъпни за използване под същия лиценз, както и самия Perl (т.нар. [[Artistic License]]), което допринася за по-нататъшното разрастване на общността. Всички тези модули могат да бъдат разгледани и свалени от [https://www.metacpan.org/ metacpan.org].
 
=== Обработка на текст ===
Line 45 ⟶ 46:
=== Използване на командния интерпретатор ===
Името на главния [[изпълним файл]] (т.е. [[интерпретатор]]а на езика, който превръща текстовия код на Perl в изпълними инструкции за [[процесор]]а) е същото като името на програмния език, но обикновено се пише с малка буква – perl в *nix системи или perl.exe в Уиндоус системи.
 
Този изпълним файл може да се използва за бързи изпълнения от командния ред на кратки програми наречени ''one-liners'', които биха отнели много редове (и вероятно време), ако биха били написани на други програмни езици.
 
Line 116 ⟶ 118:
print „$names[0], $names[2] и $names[1]\n“;
 
# oтпечатваотпечатва: Иван, Георги и Петър
 
# Деклариране на хеш.
Line 154 ⟶ 156:
count_to 4;
 
# отпечатва:
# oтпечатва:
# Мога да броя до 1!
# Мога да броя до 2!
Line 189 ⟶ 191:
== Основни контролни структури ==
Контролните структури в Perl могат да се записват по два начина. При първия кодът, който ще се изпълнява, е разположен на произволен брой редове, при другия – само на един.
 
За разлика от езика [[C (език за програмиране)|C]], в Perl е задължителна употребата на фигурни скоби за структурите използващи един-единствен оператор.
 
Line 264 ⟶ 267:
Ключовата дума '''foreach''', е синоним на '''for'''
<syntaxhighlight lang='perl'>
foreach my $i (0 .. 9) # бинарният оператор '..' връща масив с елементите от интервалaинтервала [$a, $b], записан като $a .. $b
{
print "$i\n";
Line 310 ⟶ 313:
</syntaxhighlight>
 
== ПоeзияПоезия в Perl ==
На Perl можeможе даже да се пишат стихотворения. Едно такова стихотворение с название „Black Perl“ („Черен бисер/перла/“) е било цитирано от Лари Уол в първоаприлско писмо в [[Usenet]]. То било написано поначало на Perl 3 и по думите на самия Лари той изпитал морално удовлетворение, когато стихотворението не извадило грешки в синтактически анализатор на Perl 5. Лари е известен и с миролюбивостта си, и протеста срещу милитаристичната политика на големите държави.
 
<syntaxhighlight lang="perl">
Line 337 ⟶ 340:
 
== Инсталация ==
Perl е част от всяка Юникс или [[Юникс-подобна операционна система|Юникс-подобна]] система. Това може да бъде проверено с изпълнението на командата perl -v в шела. За Уиндоус програмната среда може да бъде безплатно свалена от [http://www.activestate.com/Products/activeperl/index.plex сайта на ActiveState] или [http://strawberryperl.com/ сайта на Strawberry Perl] – дистрибуция съдържаща dmake, която улеснява инсталацият на модули, изискващи make под [[Unix]]. Всяка стандартна инсталация на програмната среда може да бъде допълвана с най-различни модули от [http://www.cpan.org сайта на CPAN], голяма част от които функционират на различни операционни системи.
 
== Документация ==
Документацията на Perl изобилства от шеги и игри на думи, за разлика от сухия език на повечето компютърна литература, а годишните обръщения на Лари („State of the Onion“, каламбур с обръщението на президента на САЩ, „State of the Union“) са ненадминати образци на духовитост.
 
Въпреки шеговития си характер, документацията на езика е изключително пълна и най-важното – общодостъпна. С командата ''perldoc <име на модул>'' се извежда помощта за съответния модул. [http://perldoc.perl.org/perl.html Онлайн документацията] изобилства с примери и указания дори и за начинаещи в езика.
 
== Литература ==