Perl (неофіційна розшифровка англ. Practical Extraction and Reporting Language — практична мова витягів та звітів) — високорівнева, інтерпретована, динамічна мова програмування загального призначення. Perl було розроблено у 1987 році Ларі Воллом, лінгвістом і програмістом за освітою, який у той час працював системним адміністратором у NASA, як скриптова мова для Unix, метою якої було полегшити процес обробки текстів файлів журналів. З того часу до мови було внесено багато змін, і здійснено перегляд її концепції та архітектури, в результаті чого вона стала дуже популярною серед програмістів. Ларі Волл продовжує працювати над ядром мови, і наразі очікується вихід нової версії, Perl 6.
Perl | |
---|---|
Парадигма | мультипарадигмальна, функціональна, імперативна, об'єктно-орієнтована |
Дата появи | 1987 |
Творці | Ларрі Волл (Larry Wall) |
Розробник | Ларі Уолл[1] і d[2] |
Останній реліз | 5.32.0 (20 червня 2020 ) |
Система типізації | Динамічна |
Під впливом від | C, sed, AWK, |
Вплинула на | Python, PHP, Ruby, ECMAScript, JavaScript |
Мова реалізації | C[3] |
Операційна система | багатоплатформова |
Ліцензія | GNU General Public License, |
Звичайні розширення файлів | .pl, pm, xs, pod, plx, t |
Репозиторій вихідного коду | perl5.git.perl.org/perl.git github.com/Perl/perl5 |
Вебсайт | www.perl.org |
|
Perl запозичує можливості багатьох інших мов програмування, як то C, shell scripting, AWK та sed. Мова надає потужні можливості для обробки тексту без довільних обмежень на довжину даних багатьох сучасних інструментів Unix. полегшує маніпуляції з текстовими файлами. Застосовується для програмування графіки, системного адміністрування, у мережному програмуванні, для програмного забезпечення, яке взаємодіє з базами даних, у програмуванні CGI для веб. Perl за свою гнучкість і потужність отримав прізвисько «швейцарського армійського ножа мов програмування».
Історія
Ларрі Волл розпочав роботу над Perl 1987 року, коли працював програмістом у компанії Unisys, 18 грудня того ж року, у поштовій розсилці comp.sources.misc від повідомив про вихід версії 1.0. Наступні два роки мова стрімко розвивалась, і вже наступного року було випущено версію 2.0, основним нововведенням якої була поліпшена робота з регулярними виразами. Perl 3 вийшов 1989 року, у ньому було додано підтримку двійкових потоків даних.
Спершу документація по Perl являла собою лиш одну сторінку підручника man. 1991 року було опубліковано книгу (відому багатьом програмістам під назвою «Camel Book»), яка невдовзі стала, де-факто, стандартним посібником для мови Perl. Разом з тим, було випущено Perl версії 4.0, у якому не було серйозних нововведень, лише нова документація.
Після цього була серія випусків, що містили виключно виправлення знайдених помилок, яка завершилась 1993 року виходом Perl версії 4.036. Після цього Ларрі Волл закинув Perl 4 і розпочав роботу над Perl 5.
Початковий етап роботи над дизайном Perl 5 було завершено 1994 року. Того ж року, для координації роботи по портуванню Perl 5 на різні платформи, було відкрито поштову розсилку The perl5-porters.
Perl 5 було випущено 17 жовтня 1994 року. У цій версії було повністю переписано інтерпретатор, а до самої мови було додано багато нових можливостей, включно з об'єктами, лексичними (my) змінними й підтримкою модулів. Модулі являли собою механізм розширення мови без змін інтерпретатора. Це дозволило з часом стабілізувати код інтерпретатора, а стороннім розробникам працювати над розширенням можливостей мови.
На сьогодні, Perl 5 і досі підтримується і є основною гілкою мови. Пізніше до неї було додано багато нових можливостей, як то підтримка Unicode, потоків, покращено підтримку об'єктно-орієнтованого програмування та багато іншого.
18 грудня 2007 року, рівно через 20 років після виходу Perl 1.0, було повідомлено про вихід Perl 5.10.0. До нього увійшло багато нововведень, які наблизили мову за своїми можливостями до Perl 6, серед них, перемикач станів (який іменують «given/when»), покращення підтримки регулярних виразів, оператор ~~ та чимало іншого.
Однієї із найважливіших подій в історії Perl 5 було додання підтримки модулів. 26 жовтня 1995 року, було відкрито Comprehensive Perl Archive Network (CPAN), яка стала репозиторієм модулів для Perl. На травень 2010 репозиторій містив понад 17 750 модулів більш як 8000 авторів. CPAN широко розглядається як одна з найбільших практичних переваг Perl.
Назва
Свого часу Ларрі Волл планував назвати мову Gloria, на честь своєї дружини, але шукав коротку назву з можливими конотаціями; він стверджує, що перебрав (і відкинув) усі три- й чотирилітерні слова англійської мови. Тож спершу мова називалася «Pearl», із притчі про перли з Євангеліє від Матвія. Однак Волл довідався, що на час виходу першої версії, вже існувала мова [en], через що йому довелося змінити написання назви, не змінюючи її вимови.
До публікації першого видання книги Programming Perl, назва мови писалася як perl (з маленької літери). Однак, Рональд Шварц (Randal L. Schwartz) у своїй книзі написав назву мови з великої, мотивуючи, що так вона виглядає привабливіше. Пізніше такий варіант прижився, і став, де-факто, стандартним. Коли йдеться власне про мову програмування, її назву пишуть із великої літери (капіталізовано): Perl. Коли ж мова йде про інтерпретатор мови, його назву пишуть з маленької (декапіталізовано): perl, оскільки Unix-подібні файлові системи є залежними від регістру.
Інколи назву пишуть великими літерами «PERL». Такий спосіб офіційна документація вважає неправильним, а деякі члени спільноти вважають його своєрідною ознакою чужинців. Попри те, що Perl часто вважають акронімом для Practical Extraction and Report Language (який часто вживається в документації), це насправді бекронім; деякі інші розшифровки згодом стали канонічними, наприклад, жарт Ларрі Волла Pathologically Eclectic Rubbish Lister. Однак, Волл стверджує, що таку назву було обрано для того, щоб надихнути програмістів до вигадування інших розшифровок цього акроніму.
Зображення верблюда
Книга , опублікована видавництвом O'Reilly Media, містила на своїй обкладинці зображення верблюда, через що отримала назву The Camel Book. Нині це зображення є символом мови Perl.
Це також хакерська емблема, яку часто малюють на футболках, бейсболках, наплічниках тощо.
Це зображення є торговою маркою, правами на яку володіє O'Reilly. Однак, компанія дозволяє вільно його використовувати, і стверджує, що утримує права на нього виключно з метою захисту від використання емблеми з іншою метою. Однак, зображення верблюда ніколи не було офіційним символом мови Perl.
Огляд
Perl — мова програмування загального призначення, котра на початку розроблялась, як інструмент для обробки текстів, а тепер застосовується для вирішення дуже широкого кола завдань, включно з системним адмініструванням, веброзробкою, розробкою мережевого програмного забезпечення, та програмного забезпечення з графічним інтерфейсом користувача.
Мова надає перевагу практичному (простота у використанні, ефективність, повнота) над гарним (крихітність, елегантність, мінімалістичність). Вона має багато можливостей, включно з підтримкою кількох парадигм програмування (процедурне програмування, об'єктно-орієнтоване програмування а також функціональне програмування), управлінням пам'яттю, вбудованою підтримкою системи обробки текстів і великим набором сторонніх модулів.
Згідно зі словами Ларрі Волла, Perl має два гасла. Перше — «Є більше одного способу це зробити» (англ. «There's more than one way to do it»), більше відомий, як TMTOWTDI, а також «Легкі речі мають лишатися легкими, а важкі мають бути можливими» (англ. «Easy things should be easy and hard things should be possible»).
Особливості
Загальна структура програм на мові Perl була запозичена у С. Perl є типовою процедурною мовою, зі змінними, виразами, присвоюваннями, дужками-розділювачами, блоками, циклами та підпрограмами.
Perl також запозичив деякі особливості з shell-програмування. Назви всіх змінних починаються з особливих знаків, кожен з яких характеризує певний тип даних (наприклад, скаляри, масиви та хеш-таблиці). Важливо зазначити, що це дозволяє правильно інтерпретувати назви змінних безпосередньо в тексті програм. Perl має багато вбудованих функцій, які забезпечують програміста інструментарієм, котрий часто використовується у shell-програмуванні (хоча, багато з цих інструментів реалізовано за допомогою зовнішніх програм), як то сортування або виклик зовнішніх програм.
Perl запозичив списки з мови Lisp, асоціативні масиви (хеші) з AWK, і регулярні вирази з sed. Це спростило процес парсингу й обробки великих обсягів текстової інформації.
У Perl 5 було додано підтримку складних структур даних, функції першого класу й об'єктно-орієнтованої моделі програмування, яка включає посилання, пакунки та ін. Серед найбільших нововведень у Perl 5 відзначають підтримку модулів, які дозволяють застосовувати код повторно. Ларрі Волл пізніше сказав: «Додання до Perl 5 підтримки модулів було здійснено з метою стимулювати зростання культури Perl, а не самої мови.»
Усі версії Perl здійснюють автоматичну типізацію змінних і управління пам'яттю. Інтерпретатор знає про тип та способи зберігання усіх об'єктів даних у програмі.
Дизайн
Дизайн Perl можна описати, як відповідь на три основні тенденції в комп'ютерної індустрії: зниження вартості апаратного забезпечення, зростання вартості робочої сили, а також вдосконалення технології компіляторів. Багато ранніх мов програмування, як то Fortran та C, були розроблені таким чином, щоб якомога ефективніше використовувати апаратне забезпечення (на той час дуже дороге). На противагу, Perl було розроблено для підвищення ефективності роботи програмістів, чий час став дорожчим від машинного.
Perl має багато можливостей, які збільшують ефективність програміста за рахунок інтенсивного використання мікропроцесора та великих обсягів оперативної пам'яті. Серед них: автоматичне управління пам'яттю, динамічна типізація, стрічки, списки, та хеші, регулярні вирази, самоаналіз та функція eval().
Ларі Уол має лінгвістичну освіту і проектував Perl з використанням багатьох принципів лінгвістики. Наприклад, використовуючи кодування Хаффмана (основні конструкції повинні бути короткими), хороше закінчення зважування (основна інформація повинна бути першою) і велику колекцію мовних примітивів. Perl підтримує мовні конструкції, які є короткими й природними для читання й написання людьми, навіть якщо це ускладнює реалізацію інтерпретатора Perl.
Синтаксис
Синтаксис Perl має багато спільного з синтаксисом мов Сі, Awk, Sed і Shell. Перший рядок початкового коду може починатися з «#!/Шлях/до/Perl [-ключі]» — що вказує системі шлях до інтерпретатора Perl для виконання програми в *NIX системах і виконання їх на Вебсервері.
Приклад програми
Перл часто застосовується для перетворення форматів файлів. Наведена нижче програма перетворює файл city.txt (в якому збережено «Infobox Town AT» з англійської Вікіпедії) на української Вікіпедії, створюючи майже готову статтю.
# /usr/bin/perl $country = 'Австрія'; $region = 'Каринтія'; $town = '{{subst:PAGENAME}}'; open (MTC,"city.txt"); while ($line = <MTC>) { if ($line =~ m/^[\{\}]/) { } else { ($name1, $name2, $res) = split(/=/, $line,3); $name1 =~ s/\s//; $name2 =~ s/\n//; $name2 =~ s/\|//; $name2 =~ s/\s+$//; if ($name1 eq 'name') {$town_local = $name2;} if ($name1 eq 'image_coa') {$coat = $name2;} if ($name1 eq 'postal_code') {$postal_code = $name2;} if ($name1 eq 'population') {$population = $name2;} if ($name1 eq 'pop_dens') {$population_density = $name2; $population_density =~ s/\./\,/;} if ($name1 eq 'area') { $area = $name2; $area =~ s/\./\,/; } if ($name1 eq 'lat_deg') {$lat_deg = $name2;} if ($name1 eq 'lat_min') {$lat_min = $name2;} if ($name1 eq 'lon_deg') {$lon_deg = $name2;} if ($name1 eq 'lon_min') {$lon_min = $name2;} if ($name1 eq 'area_code') {$city_code = $name2;} if ($name1 eq 'mayor') {$mayor = $name2;} if ($name1 eq 'website') {$web = $name2;} } print<<EndCard \{\{Місто | назва = $town | місцева_назва = $town_local | зображення = $image | зображення_розмір = $image_size | зображення_підпис = $caption | прапор = $flag | прапор_підпис = $flag_caption | герб = $coat | герб_підпис = $coat_caption | країна = $country | регіон = $region | розташування = $location | розташування_розмір = $location_size | засноване = $foundation | статус = $status | магдебурзьке право = $magdeburg | населення = $population | густота = $population_density | агломерація = $aglomeration | площа = $area | поштові індекси = $postal_code | код країни = $country_code | код міста = $city_code | координати = \{\{Coor dms |$lat_deg\|$lat_min\|$lat_sec\|N\|$lon_deg\|$lon_min\|$lon_sec\|E\|/scale:30000\}\} | поділ міста = $structure | міста-побратими = $twins | день міста = $day | адреса = $address | вебсторінка = $web | мер = $mayor }} '''\{\{\subst:PAGENAME}\}''' (\{\{lang-de\|$town_local\}\}) - місто в федеральній землі [[Каринтія]], [[Австрія]]. \{\{geo-stub\}\} \[\[Категорія:Міста Австрії\]\] \[\[de:$town_local\]\] EndCard ;
Джерела інформації
- http://learn.perl.org/faq/perlfaq1.html
- http://www.perlfoundation.org/
- The perl Open Source Project on Open Hub: Languages Page — 2006.
- Lapworth, Leo. General Questions About Perl. Perl FAQ. Perl.org. Архів оригіналу за 22 червня 2013. Процитовано 24 лютого 2012.
- perl(1): Practical Extraction/Report Language — Linux man page. Архів оригіналу за 22 червня 2013. Процитовано 19 травня 2013.
- . Архів оригіналу за 30 січня 2009. Процитовано 15 січня 2009.
- . Архів оригіналу за 4 червня 2008. Процитовано 15 січня 2009.
- Ashton, Elaine (1999). The Timeline of Perl and its Culture (v3.0_0505). Архів оригіналу за 12 травня 2013. Процитовано 15 січня 2009.
- Wall, Larry, and (July 2000). Programming Perl, Third Edition. O'Reilly. ISBN .
- Sheppard, Doug (16 жовтня 2000). Beginner's Introduction to Perl. O'Reilly Media. Архів оригіналу за 12 травня 2013. Процитовано 27 липня 2008.
- . Архів оригіналу за 12 березня 2006. Процитовано 20 серпня 2006.
- . Архів оригіналу за 2 травня 2010. Процитовано 18 грудня 2007.
- . Архів оригіналу за 10 серпня 2009. Процитовано 16 січня 2009.
- . Архів оригіналу за 30 березня 2009. Процитовано 16 січня 2009.
- perlfaq1: What's the difference between «perl» and «Perl»?. Архів оригіналу за 12 травня 2013. Процитовано 20 січня 2009.
- . PERL as shibboleth and the Perl community. Архів оригіналу за 22 червня 2013. Процитовано 1 червня 2007.
- Wall, Larry. Larry Wall. Архів оригіналу за 22 червня 2013. Процитовано 2 жовтня 2008.
- Wall, Larry. BUGS. perl(1) . Архів оригіналу за 22 червня 2013. Процитовано 13 жовтня 2006.
- Wall, Larry. Re^7: PERL as shibboleth and the Perl community. Архів оригіналу за 22 червня 2013. Процитовано 3 січня 2007.
- . Архів оригіналу за 26 грудня 2005. Процитовано 19 січня 2009.
- . Архів оригіналу за 3 травня 2011. Процитовано 19 січня 2009.
- perlintro (1) man (Unix)
- . Архів оригіналу за 24 вересня 2015. Процитовано 5 серпня 2019.
- Usenet post, May 10th 1997, with ID 199705101952.MAA00756@wall.org.
Ресурси Інтернет
- Perl.org [ 30 червня 2005 у Wayback Machine.] — офіційний майданчик тенет
- Документації по Perl [ 30 січня 2009 у Wayback Machine.]
- The Perl Foundation
- Perl, каталог посилань Open Directory Project
Заходи
- український воркшоп «Perl Mova» [ 20 жовтня 2015 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Perl neoficijna rozshifrovka angl Practical Extraction and Reporting Language praktichna mova vityagiv ta zvitiv visokorivneva interpretovana dinamichna mova programuvannya zagalnogo priznachennya Perl bulo rozrobleno u 1987 roci Lari Vollom lingvistom i programistom za osvitoyu yakij u toj chas pracyuvav sistemnim administratorom u NASA yak skriptova mova dlya Unix metoyu yakoyi bulo polegshiti proces obrobki tekstiv fajliv zhurnaliv Z togo chasu do movi bulo vneseno bagato zmin i zdijsneno pereglyad yiyi koncepciyi ta arhitekturi v rezultati chogo vona stala duzhe populyarnoyu sered programistiv Lari Voll prodovzhuye pracyuvati nad yadrom movi i narazi ochikuyetsya vihid novoyi versiyi Perl 6 PerlParadigma multiparadigmalna funkcionalna imperativna ob yektno oriyentovanaData poyavi 1987Tvorci Larri Voll Larry Wall Rozrobnik Lari Uoll 1 i d 2 Ostannij reliz 5 32 0 20 chervnya 2020 3 roki tomu 2020 06 20 Sistema tipizaciyi DinamichnaPid vplivom vid C sed AWK Vplinula na Python PHP Ruby ECMAScript JavaScriptMova realizaciyi C 3 Operacijna sistema bagatoplatformovaLicenziya GNU General Public License Zvichajni rozshirennya fajliv pl pm xs pod plx tRepozitorij vihidnogo kodu perl5 git perl org perl git github com Perl perl5Vebsajt www perl org Mediafajli u Vikishovishi Perl zapozichuye mozhlivosti bagatoh inshih mov programuvannya yak to C shell scripting AWK ta sed Mova nadaye potuzhni mozhlivosti dlya obrobki tekstu bez dovilnih obmezhen na dovzhinu danih bagatoh suchasnih instrumentiv Unix polegshuye manipulyaciyi z tekstovimi fajlami Zastosovuyetsya dlya programuvannya grafiki sistemnogo administruvannya u merezhnomu programuvanni dlya programnogo zabezpechennya yake vzayemodiye z bazami danih u programuvanni CGI dlya veb Perl za svoyu gnuchkist i potuzhnist otrimav prizvisko shvejcarskogo armijskogo nozha mov programuvannya IstoriyaLarri Voll rozpochav robotu nad Perl 1987 roku koli pracyuvav programistom u kompaniyi Unisys 18 grudnya togo zh roku u poshtovij rozsilci comp sources misc vid povidomiv pro vihid versiyi 1 0 Nastupni dva roki mova strimko rozvivalas i vzhe nastupnogo roku bulo vipusheno versiyu 2 0 osnovnim novovvedennyam yakoyi bula polipshena robota z regulyarnimi virazami Perl 3 vijshov 1989 roku u nomu bulo dodano pidtrimku dvijkovih potokiv danih Spershu dokumentaciya po Perl yavlyala soboyu lish odnu storinku pidruchnika man 1991 roku bulo opublikovano knigu vidomu bagatom programistam pid nazvoyu Camel Book yaka nevdovzi stala de fakto standartnim posibnikom dlya movi Perl Razom z tim bulo vipusheno Perl versiyi 4 0 u yakomu ne bulo serjoznih novovveden lishe nova dokumentaciya Pislya cogo bula seriya vipuskiv sho mistili viklyuchno vipravlennya znajdenih pomilok yaka zavershilas 1993 roku vihodom Perl versiyi 4 036 Pislya cogo Larri Voll zakinuv Perl 4 i rozpochav robotu nad Perl 5 Pochatkovij etap roboti nad dizajnom Perl 5 bulo zaversheno 1994 roku Togo zh roku dlya koordinaciyi roboti po portuvannyu Perl 5 na rizni platformi bulo vidkrito poshtovu rozsilku The perl5 porters Perl 5 bulo vipusheno 17 zhovtnya 1994 roku U cij versiyi bulo povnistyu perepisano interpretator a do samoyi movi bulo dodano bagato novih mozhlivostej vklyuchno z ob yektami leksichnimi my zminnimi j pidtrimkoyu moduliv Moduli yavlyali soboyu mehanizm rozshirennya movi bez zmin interpretatora Ce dozvolilo z chasom stabilizuvati kod interpretatora a storonnim rozrobnikam pracyuvati nad rozshirennyam mozhlivostej movi Na sogodni Perl 5 i dosi pidtrimuyetsya i ye osnovnoyu gilkoyu movi Piznishe do neyi bulo dodano bagato novih mozhlivostej yak to pidtrimka Unicode potokiv pokrasheno pidtrimku ob yektno oriyentovanogo programuvannya ta bagato inshogo 18 grudnya 2007 roku rivno cherez 20 rokiv pislya vihodu Perl 1 0 bulo povidomleno pro vihid Perl 5 10 0 Do nogo uvijshlo bagato novovveden yaki nablizili movu za svoyimi mozhlivostyami do Perl 6 sered nih peremikach staniv yakij imenuyut given when pokrashennya pidtrimki regulyarnih viraziv operator ta chimalo inshogo Odniyeyi iz najvazhlivishih podij v istoriyi Perl 5 bulo dodannya pidtrimki moduliv 26 zhovtnya 1995 roku bulo vidkrito Comprehensive Perl Archive Network CPAN yaka stala repozitoriyem moduliv dlya Perl Na traven 2010 repozitorij mistiv ponad 17 750 moduliv bilsh yak 8000 avtoriv CPAN shiroko rozglyadayetsya yak odna z najbilshih praktichnih perevag Perl Nazva Svogo chasu Larri Voll planuvav nazvati movu Gloria na chest svoyeyi druzhini ale shukav korotku nazvu z mozhlivimi konotaciyami vin stverdzhuye sho perebrav i vidkinuv usi tri j chotiriliterni slova anglijskoyi movi Tozh spershu mova nazivalasya Pearl iz pritchi pro perli z Yevangeliye vid Matviya Odnak Voll dovidavsya sho na chas vihodu pershoyi versiyi vzhe isnuvala mova en cherez sho jomu dovelosya zminiti napisannya nazvi ne zminyuyuchi yiyi vimovi Do publikaciyi pershogo vidannya knigi Programming Perl nazva movi pisalasya yak perl z malenkoyi literi Odnak Ronald Shvarc Randal L Schwartz u svoyij knizi napisav nazvu movi z velikoyi motivuyuchi sho tak vona viglyadaye privablivishe Piznishe takij variant prizhivsya i stav de fakto standartnim Koli jdetsya vlasne pro movu programuvannya yiyi nazvu pishut iz velikoyi literi kapitalizovano Perl Koli zh mova jde pro interpretator movi jogo nazvu pishut z malenkoyi dekapitalizovano perl oskilki Unix podibni fajlovi sistemi ye zalezhnimi vid registru Inkoli nazvu pishut velikimi literami PERL Takij sposib oficijna dokumentaciya vvazhaye nepravilnim a deyaki chleni spilnoti vvazhayut jogo svoyeridnoyu oznakoyu chuzhinciv Popri te sho Perl chasto vvazhayut akronimom dlya Practical Extraction and Report Language yakij chasto vzhivayetsya v dokumentaciyi ce naspravdi bekronim deyaki inshi rozshifrovki zgodom stali kanonichnimi napriklad zhart Larri Volla Pathologically Eclectic Rubbish Lister Odnak Voll stverdzhuye sho taku nazvu bulo obrano dlya togo shob nadihnuti programistiv do vigaduvannya inshih rozshifrovok cogo akronimu Zobrazhennya verblyuda Kniga opublikovana vidavnictvom O Reilly Media mistila na svoyij obkladinci zobrazhennya verblyuda cherez sho otrimala nazvu The Camel Book Nini ce zobrazhennya ye simvolom movi Perl Ce takozh hakerska emblema yaku chasto malyuyut na futbolkah bejsbolkah naplichnikah tosho Ce zobrazhennya ye torgovoyu markoyu pravami na yaku volodiye O Reilly Odnak kompaniya dozvolyaye vilno jogo vikoristovuvati i stverdzhuye sho utrimuye prava na nogo viklyuchno z metoyu zahistu vid vikoristannya emblemi z inshoyu metoyu Odnak zobrazhennya verblyuda nikoli ne bulo oficijnim simvolom movi Perl OglyadPerl mova programuvannya zagalnogo priznachennya kotra na pochatku rozroblyalas yak instrument dlya obrobki tekstiv a teper zastosovuyetsya dlya virishennya duzhe shirokogo kola zavdan vklyuchno z sistemnim administruvannyam vebrozrobkoyu rozrobkoyu merezhevogo programnogo zabezpechennya ta programnogo zabezpechennya z grafichnim interfejsom koristuvacha Mova nadaye perevagu praktichnomu prostota u vikoristanni efektivnist povnota nad garnim krihitnist elegantnist minimalistichnist Vona maye bagato mozhlivostej vklyuchno z pidtrimkoyu kilkoh paradigm programuvannya procedurne programuvannya ob yektno oriyentovane programuvannya a takozh funkcionalne programuvannya upravlinnyam pam yattyu vbudovanoyu pidtrimkoyu sistemi obrobki tekstiv i velikim naborom storonnih moduliv Zgidno zi slovami Larri Volla Perl maye dva gasla Pershe Ye bilshe odnogo sposobu ce zrobiti angl There s more than one way to do it bilshe vidomij yak TMTOWTDI a takozh Legki rechi mayut lishatisya legkimi a vazhki mayut buti mozhlivimi angl Easy things should be easy and hard things should be possible Osoblivosti Zagalna struktura program na movi Perl bula zapozichena u S Perl ye tipovoyu procedurnoyu movoyu zi zminnimi virazami prisvoyuvannyami duzhkami rozdilyuvachami blokami ciklami ta pidprogramami Perl takozh zapozichiv deyaki osoblivosti z shell programuvannya Nazvi vsih zminnih pochinayutsya z osoblivih znakiv kozhen z yakih harakterizuye pevnij tip danih napriklad skalyari masivi ta hesh tablici Vazhlivo zaznachiti sho ce dozvolyaye pravilno interpretuvati nazvi zminnih bezposeredno v teksti program Perl maye bagato vbudovanih funkcij yaki zabezpechuyut programista instrumentariyem kotrij chasto vikoristovuyetsya u shell programuvanni hocha bagato z cih instrumentiv realizovano za dopomogoyu zovnishnih program yak to sortuvannya abo viklik zovnishnih program Perl zapozichiv spiski z movi Lisp asociativni masivi heshi z AWK i regulyarni virazi z sed Ce sprostilo proces parsingu j obrobki velikih obsyagiv tekstovoyi informaciyi U Perl 5 bulo dodano pidtrimku skladnih struktur danih funkciyi pershogo klasu j ob yektno oriyentovanoyi modeli programuvannya yaka vklyuchaye posilannya pakunki ta in Sered najbilshih novovveden u Perl 5 vidznachayut pidtrimku moduliv yaki dozvolyayut zastosovuvati kod povtorno Larri Voll piznishe skazav Dodannya do Perl 5 pidtrimki moduliv bulo zdijsneno z metoyu stimulyuvati zrostannya kulturi Perl a ne samoyi movi Usi versiyi Perl zdijsnyuyut avtomatichnu tipizaciyu zminnih i upravlinnya pam yattyu Interpretator znaye pro tip ta sposobi zberigannya usih ob yektiv danih u programi Dizajn Dizajn Perl mozhna opisati yak vidpovid na tri osnovni tendenciyi v komp yuternoyi industriyi znizhennya vartosti aparatnogo zabezpechennya zrostannya vartosti robochoyi sili a takozh vdoskonalennya tehnologiyi kompilyatoriv Bagato rannih mov programuvannya yak to Fortran ta C buli rozrobleni takim chinom shob yakomoga efektivnishe vikoristovuvati aparatne zabezpechennya na toj chas duzhe doroge Na protivagu Perl bulo rozrobleno dlya pidvishennya efektivnosti roboti programistiv chij chas stav dorozhchim vid mashinnogo Perl maye bagato mozhlivostej yaki zbilshuyut efektivnist programista za rahunok intensivnogo vikoristannya mikroprocesora ta velikih obsyagiv operativnoyi pam yati Sered nih avtomatichne upravlinnya pam yattyu dinamichna tipizaciya strichki spiski ta heshi regulyarni virazi samoanaliz ta funkciya eval Lari Uol maye lingvistichnu osvitu i proektuvav Perl z vikoristannyam bagatoh principiv lingvistiki Napriklad vikoristovuyuchi koduvannya Haffmana osnovni konstrukciyi povinni buti korotkimi horoshe zakinchennya zvazhuvannya osnovna informaciya povinna buti pershoyu i veliku kolekciyu movnih primitiviv Perl pidtrimuye movni konstrukciyi yaki ye korotkimi j prirodnimi dlya chitannya j napisannya lyudmi navit yaksho ce uskladnyuye realizaciyu interpretatora Perl SintaksisSintaksis Perl maye bagato spilnogo z sintaksisom mov Si Awk Sed i Shell Pershij ryadok pochatkovogo kodu mozhe pochinatisya z Shlyah do Perl klyuchi sho vkazuye sistemi shlyah do interpretatora Perl dlya vikonannya programi v NIX sistemah i vikonannya yih na Vebserveri Priklad programiPerl chasto zastosovuyetsya dlya peretvorennya formativ fajliv Navedena nizhche programa peretvoryuye fajl city txt v yakomu zberezheno Infobox Town AT z anglijskoyi Vikipediyi na Shablon Misto ukrayinskoyi Vikipediyi stvoryuyuchi majzhe gotovu stattyu usr bin perl country Avstriya region Karintiya town subst PAGENAME open MTC city txt while line lt MTC gt if line m else name1 name2 res split line 3 name1 s s name2 s n name2 s name2 s s if name1 eq name town local name2 if name1 eq image coa coat name2 if name1 eq postal code postal code name2 if name1 eq population population name2 if name1 eq pop dens population density name2 population density s if name1 eq area area name2 area s if name1 eq lat deg lat deg name2 if name1 eq lat min lat min name2 if name1 eq lon deg lon deg name2 if name1 eq lon min lon min name2 if name1 eq area code city code name2 if name1 eq mayor mayor name2 if name1 eq website web name2 print lt lt EndCard Misto nazva town misceva nazva town local zobrazhennya image zobrazhennya rozmir image size zobrazhennya pidpis caption prapor flag prapor pidpis flag caption gerb coat gerb pidpis coat caption krayina country region region roztashuvannya location roztashuvannya rozmir location size zasnovane foundation status status magdeburzke pravo magdeburg naselennya population gustota population density aglomeraciya aglomeration plosha area poshtovi indeksi postal code kod krayini country code kod mista city code koordinati Coor dms lat deg lat min lat sec N lon deg lon min lon sec E scale 30000 podil mista structure mista pobratimi twins den mista day adresa address vebstorinka web mer mayor subst PAGENAME lang de town local misto v federalnij zemli Karintiya Avstriya geo stub Kategoriya Mista Avstriyi de town local EndCard Dzherela informaciyihttp learn perl org faq perlfaq1 html http www perlfoundation org The perl Open Source Project on Open Hub Languages Page 2006 d Track Q124688 Lapworth Leo General Questions About Perl Perl FAQ Perl org Arhiv originalu za 22 chervnya 2013 Procitovano 24 lyutogo 2012 perl 1 Practical Extraction Report Language Linux man page Arhiv originalu za 22 chervnya 2013 Procitovano 19 travnya 2013 Arhiv originalu za 30 sichnya 2009 Procitovano 15 sichnya 2009 Arhiv originalu za 4 chervnya 2008 Procitovano 15 sichnya 2009 Ashton Elaine 1999 The Timeline of Perl and its Culture v3 0 0505 Arhiv originalu za 12 travnya 2013 Procitovano 15 sichnya 2009 Wall Larry and July 2000 Programming Perl Third Edition O Reilly ISBN 0 596 00027 8 Sheppard Doug 16 zhovtnya 2000 Beginner s Introduction to Perl O Reilly Media Arhiv originalu za 12 travnya 2013 Procitovano 27 lipnya 2008 Arhiv originalu za 12 bereznya 2006 Procitovano 20 serpnya 2006 Arhiv originalu za 2 travnya 2010 Procitovano 18 grudnya 2007 Arhiv originalu za 10 serpnya 2009 Procitovano 16 sichnya 2009 Arhiv originalu za 30 bereznya 2009 Procitovano 16 sichnya 2009 perlfaq1 What s the difference between perl and Perl Arhiv originalu za 12 travnya 2013 Procitovano 20 sichnya 2009 PERL as shibboleth and the Perl community Arhiv originalu za 22 chervnya 2013 Procitovano 1 chervnya 2007 Wall Larry Larry Wall Arhiv originalu za 22 chervnya 2013 Procitovano 2 zhovtnya 2008 Wall Larry BUGS perl 1 Arhiv originalu za 22 chervnya 2013 Procitovano 13 zhovtnya 2006 Wall Larry Re 7 PERL as shibboleth and the Perl community Arhiv originalu za 22 chervnya 2013 Procitovano 3 sichnya 2007 Arhiv originalu za 26 grudnya 2005 Procitovano 19 sichnya 2009 Arhiv originalu za 3 travnya 2011 Procitovano 19 sichnya 2009 perlintro 1 man Unix Arhiv originalu za 24 veresnya 2015 Procitovano 5 serpnya 2019 Usenet post May 10th 1997 with ID 199705101952 MAA00756 wall org Resursi InternetPerl org 30 chervnya 2005 u Wayback Machine oficijnij majdanchik tenet Dokumentaciyi po Perl 30 sichnya 2009 u Wayback Machine The Perl Foundation Perl katalog posilan Open Directory ProjectZahodiukrayinskij vorkshop Perl Mova 20 zhovtnya 2015 u Wayback Machine