|
Article on other languages:
|
Tento článek pojednává o programovacím jazyku. O typografické jednotce perl pojednává článek typografický bod.
Perl je interpretovaný programovací jazyk vytvořený Larry Wallem v roce 1987. S rozvojem internetu se Perl stal velmi populárním nástrojem pro tvorbu CGI skriptů. Perl zahájil svou éru jako skriptovací jazyk, náhrada jazyka AWK a interpretru sh. Největšího rozšíření dosáhl ve verzi 4 z roku 1991. Verze 5 přinesla četná vylepšení, především výkonné datové struktury a možnost objektového programování. V poslední době získal Perl oblibu mimo jiné v bioinformatice. PC Magazin zařadil Perl v roce 1998 mezi finalisty soutěže Technical Excellence Award v kategorii Development Tool. Slovo Perl najdete v Oxford English Dictionary. Larry Wall se při konstrukci jazyka řídil heslem: dá se to udělat více způsoby (there's more than one way to do it). Umožňuje psát krátké programy jednoduše a rychle a přítom nebrání v psaní těch složitých. Jeden ze způsobů je přitom obvykle velmi stručný, takže Perl získal nezaslouženou pověst jazyka, ve kterém se tvoří nesrozumitelný a neudržovatelný kód. Tato kritika ale není oprávněná, Perl je vhodný k řešení malých i velkých problémů. Schopnosti a nástroje, které se používají u velkých projektů, lze použít i v krátkých skriptech. Dobrý programátor má podle Larryho Walla být líný, netrpělivý a arogantní (Laziness, Impatience and Hubris).
Výhody Perlu
Nevýhody Perlu
Budoucí vývoj (Perl 6 a VM Parrot)V červenci roku 2000, hned po setkání na kterém byl odstartován projekt vývoje jazyka Perl 6, byla započata práce na návrhu virtuálního stroje (VM - Virtual Machine) s názvem Parrot. Parrot je určen pro efektivní běh dynamických programovacích jazyků (primárně pro Perl 6). Jádro nové verze jazyka Perl tak bude kompletně přepsáno jako tomu bylo např. u projektu Mozilla. Také syntaxe jazyka se dosti zásadně změní a úplná zpětná kompatibilita bude zaručena jinými prostředky. Ukázka kóduTradiční program „Hello world“: print "hello, world!\n"; Rozšířená verze tradičního programu: # A sample Perl program $_ = "Hello, world! The magic number is 234542354.\n"; print; s/\d+/-1/; print; a její výstup: Hello, world! The magic number is 234542354. Hello, world! The magic number is -1. Vysvětlení: print; v podstatě znamená print $_; (kde $_ je výchozí proměnná). s/\d+/-1/; (nebo také $_ =~ s/\d+/-1/;) je regulární výraz, jenž nahradí první nalezenou sekvenci číslic (celé číslo) číslem -1. Perl je dynamický programovací jazyk. Je možné používat kompilátor v samotném programu. Tady je příklad kalkulačky v jednom řádku kódu: while (1) { print eval <>; } Lze pak zadat například: 5*5 <ENTER> $a = $b = 1; $a+$b <ENTER> for (1..1_000_000) { print +($a+$b+$_)."\n"; } <ENTER> sin($a)**0.5 <ENTER> Složitější ukázkou je funkce, která vypíše Fibonacciho posloupnost: &fib(100); sub fib { my ($a, $b) = (0, 1); while ($b < $_[0]) { print "$b "; ($a, $b) = ($b, $a + $b); } } Výstupem tohoto programu by bylo: 1 1 2 3 5 8 13 21 34 55 89 Perl neumožňuje tradiční způsob předání parametrů funkci. Hodnoty předávané při volání funkce jsou uloženy v poli @_. Práce s proměnnými je v Perlu poněkud odlišná od běžných jazyků (C/C++, Pascal): $prom; # skalární proměnná @prom; # pole %prom; # asociativní pole $pozdrav = "Ahoj"; # skalární proměnná obsahující řetězec znaků @pole = (1, 2, 3); # pole o třech prvcích $pole[1] = 4; # v případě, že přistupujeme ke konkrétní položce, # která je skalární hodnotou, umístíme před # název proměnné symbol $ %skoly = ("pavel" => "FI MUNI", "petr" => "FIT VUT"); # asociativní pole, hodnoty jsou zadávány ve tvaru # klíč => hodnota print $skoly{"pavel"}; # vypíše: FI MUNI # hodnota je opět skalární Krása perluLarry Wall považuje sám sebe za umělce a Perl za umělecké dílo. Následující program [1] slouží jako malá ukázka, čeho je tento jazyk schopen. Program vypíše poměrně pomalu slova: Just another Perl / Unix hacker . Za tím účelem vytvoří 32 paralelních procesů, které složitě synchronizuje pomocí rour. @P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{ @p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&& close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print Literatura
Externí odkazy
Články a učebnice: Související projekty:
|
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net