Perl | ||
Datum první verze | 1987 | |
---|---|---|
Paradigmata | Objektové , imperativní , funkční , reflexní , procedurální , založené na událostech , obecné | |
Autor | Larry zeď | |
Vývojáři | Nadace Perl | |
Poslední verze | 5.34.0 (20. května 2021) | |
Psaní na stroji | Slabý , dynamický | |
Ovlivněno | C , ZÁKLAD , Eiffel , skořápka , sed , awk | |
Ovlivněno | Ruby , Python , PHP , Raku | |
Implementace | Perl | |
Napsáno | VS | |
Operační systém | Multiplatformní | |
Licence |
Licence zdarma : - GNU GPL ; - umělecká licence ; |
|
webová stránka | www.perl.org a dev.perl.org/perl5 | |
Přípona souboru | pl a pm | |
Perl je programovací jazyk vytvořený Larrym Wallem v roce 1987 ke snadnému zpracování textových informací . Tento jazyk, interpretovaný , je inspirován ovládacími a tiskovými strukturami jazyka C , ale také skriptovacími jazyky sed , awk a shell ( sh ).
Podporuje regulární výrazy ve své vlastní syntaxi, čímž přímo umožňuje akce s obecným vzhledem sekvencí textu.
O jeho budoucnost se stará sdružení The Perl Foundation a mimo jiné i jeho možný přechod z verze 5.x na verzi 7 - verze 6 původně předpokládaná jako nástupce Perlu 5, který se rozcházel do té míry, že se stal plnohodnotným rozvinutý jazyk jménem Raku . Jazyk má status svobodného softwaru distribuovaného na základě dvojí licence : Artistic License a GPL .
Perl nabízí pohodlí při získávání informací z textových souborů a jejich hlášení. Může nahradit shell skriptů , stejně jako příkazy typu sed , awk , grep , střih , zkoušky a expr . Při práci se vstupními formáty, které nemusí být nutně strukturované, nedochází k přenosu dat z jednoho procesu do druhého, čímž jsou procesy méně čitelné, což poskytuje jednotný rámec. Jeho syntax je inspirována C, přidává možnost regulárních výrazů přímo v jazyce a zahrnuje hlavní funkce systémových knihoven v C.
Zaměřuje se také na pragmatické pohodlí programátora (existence zkratek, které jej kvalifikují jako „diagonální“ jazyk), nikoli estetickou touhu po přísné architektuře („ortogonální“ jazyky).
Cross-platform Perl se používá mimo jiné pro psaní CGI skriptů a zpracování souborů protokolu. Umožňuje vám také přidat „ v procesu “ na webový server Apache díky rozšíření mod_perl , jako jsou servlety PHP nebo Java .
Je snadno nalezen nebo kompilován na většině operačních systémů , zejména v prostředí POSIX : GNU / Linux , * BSD , Mac OS X a Cygwin pod Microsoft Windows s ActivePerl - jehož verze 5.8 umožňuje použití Unicode nebo GUI.
Vzhledem k dostupnosti WSL ve Windows 10 jej lze také použít v bash okně ve Windows.
Od roku 2008 existuje Strawberry pro Windows, blízký původní distribuci Unixu, s kompilátorem C a je k dispozici ve 32 a 64bitové verzi i v přenosné verzi (bez instalace).
Perl je imperativní jazyk blízký skořápkám C a UNIX. Stejně jako v shellu, znak křížku (#) zavádí komentář a nový řádek jej končí. Je také možné použít POD k napsání komentáře na více řádcích.
# Je suis un commentaire classique my $variable = 1; # Je suis un commentaire après une ligne de code =for comment Je suis un commentaire sur plusieurs lignes. =cutSyntax Perl mu umožňuje vyjádřit stručně ve stejných výrazů jazyka bez volá funkce knihoven , takže více čitelně. Začátečník může snadno použít pouze podmnožinu jazyka.
ProměnnéPerl je psán staticky jednoduchým způsobem: první znak identifikátoru proměnné je nealfanumerický znak zvaný sigil :
Na rozdíl od Perlu 6 se sigil $ používá při volání prvku pole nebo hash prvku. To vychází ze skutečnosti, že obecně nazýváme skalární prvek. Příklad:
$a[2]; # Appel d'un élément de tableau/liste $a{John}; # Appel d'un élément de table de hashMohou koexistovat tři typy proměnných se stejným názvem:
$a = 'rien'; # scalaire contenant la chaine 'rien' @a = 1..5; # tableau contenant les chiffres '1, 2, 3, 4, 5' %a = ( # table de hash contenant 3 paires de clef => valeur John => 'Sheridan', Londo => 'Mollari', Kosh => 'Naranek' );Perl akceptuje declarators označující rozsah z deklarovaných proměnných :
my $toto = 'rien' ; # variable scalaire à portée lexicale local $level += 1; # variable scalaire avec une valeur à portée dynamique our @s = (1, $s, 3.14); # variable tableau globale au module courantSigily se používají k rozpoznání názvů proměnných v řetězcích znaků a k interpretaci těchto proměnných.
print "la variable toto vaut $toto";Perl nevyžaduje výrobci z těl .
my %a = ( clé1 => [1, 2], clé2 => [3, 4] );XML :: Literal modul k dispozici na CPAN umožňuje podpory XML typu literals podobným způsobem na standardní E4X rozšíření o ECMAScript .
Od verze 5.10 jazyk obsahuje funkce původně určené pro budoucí Perl 6, jako je struktura ovládání přepínače a pojmenované zachycení pro operátora shody (tj. Schopnost pojmenovat prvky zpracovávané za běhu). 6 th verze jazyka , oznámil v roce 2001, je k dispozici odprosince 2015. vříjna 2019„„ Perl 6 “je nakonec přejmenován na Raku, aby nedošlo k záměně s Perlem 5 a aby se potvrdila skutečnost, že existují dva odlišné jazyky. včerven 2020komunita, která řídí Perl, rozhodne, že příští hlavní verze Perlu bude nakonec pojmenována Perl 7.
Programy Perl jsou plně přenositelné mezi GNU / Linux , Mac OS X (nebo jiným UNIXem ) a Windows i přes různá označení souborů těchto systémů (Perl nahradí „ / “ v případě potřeby „ \ “, nebo dokonce „\\“) .
Perl umožňuje použití I / O modulu Tk GUI . Sada se někdy označuje jako obecný název Perl / Tk . Rozšíření Tk bylo integrováno do ActivePerl od verze 5.8 jazyka.
Grafická rozhraní pohodlnější než Tk nabízejí také knihovny CPAN .
TkZinc přináší Tk modernizovaný vzhled. PerlQt podporuje Qt 3.x. Gtk2 podporuje Gtk 2.x. wxperl podporuje wxWidgets . wxWidgets má tu výhodu, že poskytuje nativní vzhled použitého okenního systému . Pod Mac OS X , CamelBones poskytuje přístup k Cocoa API .
Perl5, i když je interpretován, nerespektuje své pokyny pokaždé, když je provede. Aniž by vytvořil bytecode jako ostatní interpretované jazyky, provede montážní průchod, který překládá konstanty, nahradí proměnné interními adresami a vytvoří syntaxový strom (AST, Abstract Syntax Tree ).
Zdrojový kód je přeložen pokyn vydaný instrukce AST následně optimalizována. Pokud jsou příkazy umístěny ve speciálním bloku, jako je BEGIN nebo CHECK , jsou provedeny ihned po jejich kompilaci (a tedy před kompilací zbytku zdrojového kódu). To platí zejména pro moduly načtené instrukcí k použití . AST ve srovnání s obvyklým AST má tu zvláštnost, že již obsahuje cesty provedení. Během fáze provádění tedy tlumočník sleduje cesty přítomné v AST a provádí zbývající instrukce.
Perl 5 nepoužívá bytecode kdykoli. Projekt kompilace bytecode zahájený v Perlu 5.005 Malcom Beattie nikdy nevznikl. Příchod Parrot však může nabídnout nové řešení.
Několik funkcí knihoven Perl 5 bude integrováno do Perlu 6: tedy analýza bude integrována do motoru regulárních výrazů. Dnes v Perlu 5 může být analyzátor LALR zapsán modulem Parse :: Yapp , klonem yacc . Parse :: RecDescent je modul, který umožňuje psaní rekurzivního analyzátoru potomků.
Perl má opakující se vtip jako zkratku pro Pathologically Eclectic Rubbish Lister ( patologický sběratel směsného odpadu ) v odkazu na svůj speciální charakter plný významu v syntaxi jazyka, jako v následujícím příkladu:
# Un exemple de programme en Perl $message = "À l'endroit : 'camel'.\n"; print $message; $message =~ s/endroit/envers/; $message =~ s/('\w+')/reverse($1)/e; print $message; exit 0a jeho výstup na obrazovku:
À l'endroit : 'camel'. À l'envers : 'lemac'.Třetí a čtvrtý řádek tohoto příkladu ukazují použití regulárních výrazů .
Klasický příklad:
print "Hello World\n"; # Affiche 'Hello World' suivi d'un retour à la ligneNěkterá slova mají v Perlu a v běžné počítačové literatuře odlišný význam. Zde jsou dva příklady:
Perl má velkou uživatelskou základnu, ale stále více konkuruje PHP , Python , Ruby , Javascript atd. Jazyk oceňují správci systému, ale také vývojáři v oblasti bioinformatiky, kde se programy neustále mění.
Databáze CPAN shromažďuje a bezplatně zpřístupňuje uživatelům Perlu 15,4 milionu řádků kódu ve formě modulů Perl a přehledů, které ukazují, jak je implementovat.
Ve Francii tento jazyk propaguje sdružení Mongueurs de Perl , zejména prostřednictvím Perlových dnů.
Obvykle píšeme název tohoto jazyka velkými písmeny P pro označení jazyka a malými písmeny p, když mluvíme o tlumočníkovi : „pouze Perl správně analyzuje Perl.“ Jedním z důsledků je, že systém zvýraznění syntaxe programu Perl bude muset použít překladač Perl, aby byl zcela správný. V praxi mohou čisté Perl moduly jako Perl :: Tidy a PPI správně porozumět většině aktuálního kódu.
Původně návrhář Perlu, Larry Wall , plánoval pojmenovat jeho jazyk „ perla “, podle biblického podobenství nalezeného v evangeliu podle Matouše (kapitola 13, verše 45 a 46). Již existoval programovací jazyk s názvem PEARL - pro multitasking a programování v reálném čase. Wall proto změnil pravopis na „Perl“. Různé významy, které dnes najdeme jako Praktická extrakce a Jazyk zpráv, jsou jednoduše retroakronymy .
Black Perl je báseň Larryho Walle, napsaná v programovacím jazyce Perl a v anglickém jazyce.
Code golf je programovací hra v Perlu, ve které napíšete nejkratší program ke splnění daného úkolu.