Perl (Practical Extraction and Reporting Language) je interpretovaným programovacím jazykem, který vytvořil Larry Wallem v roce 1987. V průběhu toho, jak se rozvíjel internet, se Perl stal značně populárním nástrojem na výrobu CGI skriptů.

Perl byl původně skriptovacím jazykem, která měl nahradit AWK a interpreter sh. Největšího rozšíření se dočkal ve verzi 4 z roku 1991. Další verze přinesla především výkonné datové struktury a možnost objektového programování. V současnosti získal Perl oblibu i například v oblasti bioinformatiky.

Při tvorbě jazyka se Larry Wall řídil heslem, že se věci dají dělat více způsoby („there’s more than one way to do it“). Perl tedy umožňuje napsat jednoduše a rychle krátké programy a zároveň nijak nebrání tvorbě složitých. Jeden ze způsobů zápisu je často velmi stručný, proto si Perl získal pověst jazyka, ve kterém je tvořen nesrozumitelný a neudržovatelný kód.

Výhody použití Perl

  • Rychlý vývoj. Interpretovaný jazyk umožňuje rychlý vývoj bez potřeby kompilace nebo linkování. Program se kompiluje po každém spuštění a kdykoliv je možné přidat další kód. Před kompilací je zároveň možné provést část kódu, který nastaví konstanty, za pomoci nichž lze vylepšit optimalizační část kompilace.
  • Vysoká dostupnost modulů. Existuje přes 18 000 volně dostupných modulů od třetích stran v Comprehensive Perl Archive Networku CPAN. Instalace modulů, jejich pojmenování, kategorizace, dokumentace i testování jsou standardizovány. Moduly následně zpřístupňují víceméně všechna dostupná rozhraní a knihovny.
  • Práce s pamětí. Práce s pamětí probíhá automaticky, není třeba ji explicitně alokovat ani uvolňovat.
  • Pokročilé datové typy. Umožňuje například asociativní pole neboli hash, lineární seznamy a binární stromy tak nejsou potřeba.
  • Efektivní programování. Pro programy, které nejsou v přímé závislosti na rychlosti běhu, je maximálně výhodný jazyk, který vyžaduje minimum řádek kódu.
  • Bezpečnost. Ve srovnání s jazyky, které jsou kompilované má lepší možnosti zabezpečení v průběhu běhu kódu.
  • Snadné propojování hotových komponent. Podobně jako u Delphi, Visual Basicu nebo PowerBuilderu je jednoduché propojovat hotové komponenty.
  • Různá paradigmata. Perl umožňuje procedurální programování, funkcionální programování i objektově orientované programování.

Nevýhody použití Perl

  • Riziko čitelnosti. Méně disciplinovaný programátor může vzhledem k vysoké benevolenci zápisu extrémně snadno vytvořit kód, který je naprosto nesrozumitelný.
  • Absence parseru. Syntaxe perlu 5 je tak složitá, že neexistuje formální definice syntaxe jazyka ani samostatný parser. Jediným parserem je samotný interpret perlu, ani specializované programy jako je Vim nebo Emacs nedokáží pro perl korektně zvýrazňovat syntaxi.
  • Problematika kruhových odkazů. Při použití reference counting garbage collectoru je nutné použít destruktory, které přeruší kruh, případně weak reference, které nezvyšují hodnotu čítače referencí.
  • Není vhodný pro výuku. Začínat s Perlem je rizikové, protože si začínající programátor snadno zvykne, že není potřeba se o mnoho věcí starat a je pak krajně obtížné přejít k jinému jazyku.
  • Neefektivnost. V některých aplikacích se může ukázat neefektivnost dynamicky typovaného jazyka v porovnání se staticky typovanými jazyky. Problematická je zvláště spotřeba paměti.

Kdy použít Perl

Perl bývá často srovnáván s Pythonem. Jednou z výhod Pythonu oproti Perlu je čitelnost kódu. Perl bývá používán pro systémovou administraci, síťové programování, finanční aplikace, bioinformatiku a další aplikace jako například GUI.