Základy Perlu: Rychlý kurz pro vývojáře CGI

3

Perl je programovací jazyk. Je starý. Je respektován. Je všude. Pokud jste někdy viděli CGI skript, na kterém běží základní webová aplikace z konce 90. let, viděli jste Perl.

Dělá to dobře dvě věci. Za prvé, nahrazuje dávkové soubory DOS a skripty prostředí C. Za druhé, pohání webové servery. Právě na tomto kontextu nyní záleží.

Dobrá zpráva? Zdrojový kód je zdarma. Vývojáři to rozdávají zdarma. Můžete si stáhnout tisíce skriptů. Můžete je studovat. Můžete je zlomit.

špatné zprávy? Většina tohoto kódu je nečitelná. Perl podporuje styl, který hraničí s překrýváním. Pokud nevíte, co děláte, nebudete rozumět tomu, co čtete.

Tento tutoriál předpokládá, že již víte, jak kódovat. Pokud znáte C, jste napřed. Pokud ne, začněte zde. Chybí nám filozofie. Přejdeme k syntaxi.

Spusťte tlumočník

Potřebujete překladač jazyka Perl.

Pokud používáte UNIX, pravděpodobně je již nainstalován. 99,99% šance. Zkontrolujte svůj terminál.

Pokud používáte Windows nebo Mac, přejděte prosím na oficiální web. Stáhněte si nejnovější verzi. Nainstalujte jej. Perl je zdarma. Je to open source. Existuje již od roku 1987. Udržujte proces instalace jednoduchý.

Po instalaci najděte adresář DOCS. Je součástí balení. Prohlédněte si to. Ještě nečtěte každé slovo. Je to hustý. Je sucho. Ale je to přesné. Budete to potřebovat později, až základy přestanou dávat smysl.

Váš první skript

Nastavte cestu. Přidejte spustitelný soubor Perl. Otevřete textový editor. Vytvořte soubor s názvem test1.pl.

Napište toto:

Uložte to. Otevřete příkazový řádek. Zadejte:

Uvidíte “Ahoj světe!” na obrazovce. Toto je stdout. Toto je standardní výstup.

Na UNIXu můžete na první řádek přidat #!/usr/bin/perl. Pak můžete jednoduše zadat ./test1.pl. Čistič. Rychleji.

Příkaz print vytiskne data na stdout. \n je nový řádek. Jen.

Zkuste toto:

Dvě linky. Jeden tým.

Proč to fungovalo? Kvůli dvojitým uvozovkám. V Perlu spouštějí dvojité uvozovky interpretaci uvozovek. Zpracovává escape sekvence.

Používat jednoduché uvozovky?

Nyní vidíte doslovný text. \n zůstane jako \n. Žádný výklad. Žádná magie.

Je zde také znak zpětné uvozovky: `.

Tím se spustí příkaz operačního systému. Výstup se vytiskne na obrazovku. Ve Windows je vyžadován cmd /c. dir není spustitelný soubor. Toto je příkaz vestavěný do shellu.

Pokud zkusíte print 'dir'; ve Windows NT, nebude to fungovat. Potřebujete skořápku.

Všimněte si symbolu /. Používá se pro regulární výrazy. Uvidíte to všude.

print přijímá čárky jako oddělovače:

Také přijímá tečky jako operátory zřetězení:

Tečka spojuje čáry. Argumenty odděluje čárka.

C programátoři budou milovat printf. Funguje to úplně stejně jako v C.

Proměnné a datové typy

Proměnné Perlu nevyžadují deklaraci. Existují ve chvíli, kdy jim přiřadíte význam.

Vždy používejte symbol $.

Dvojité uvozovky interpretují sekvence escape. Svobodní – ne.

Čísla také fungují.

\t je karta. Perl to řeší.

Zřetězení řetězců používá tečku:

Existuje zkrácená verze. .= funguje jako +=.

Pole

Pole začínají @.

Pole mají nulové indexování. Jako C. Jako Java. Jako v Pythonu.

Záznam $#a vám poskytne maximální index. Ne množství. Index. Takže pokud máte tři prvky, $#a se rovná 2.

Haše

Hashe začínají %. Jedná se o páry klíč–hodnota.

‘bar’ souvisí s ‘pes’. ‘mňau’ s ‘kočka’.

Existuje čistší syntaxe. Provozovatel =>.

Cituje levou stranu. Působí jako čárka. Díky tomu je kód čitelný. Použijte to.

Perl se stane snadným, jakmile přestanete bojovat se syntaxí. Základy jsou jednoduché. Pokročilé věci jsou tam, kde to začíná být divné. Držte se jádra. Ovládněte proměnné. Osvojte si pravidla uvozovek.

Zbytek jsou jen šablony. A špatné návyky.

Pokud jste pracovali s C, bude vám syntaxe Perlu připadat povědomá. Hodně si půjčuje z tohoto jazyka, ale uvolňuje přísnost požadavků.

Vezměme si smyčku for. Vypadá přesně tak, jak byste čekali:

Pro jednodušší iterace můžete také použít příkazy while. Zde je proměnná inkrementována uvnitř bloku:

Logické operátory se řídí stejnými pravidly jako v C. Použijte && pro „a“, || pro „nebo“ a ! pro „ne“.

Poznámka: Perl nabízí druhou sadu porovnávacích operátorů pro řetězce. Zatímco == kontroluje číselnou rovnost, eq kontroluje řetězcovou rovnost.

Číselné operátory zůstávají standardní:
== (rovná se)
!= (nerovná se)
< *, <= , >, *=

Pokud ale pracujete s textem, mohly by vám vyhovovat alternativy založené na slovech:
eq (rovná se)
ne (nerovná se)
lt (méně)
le (menší nebo rovno)
gt (více)
ge (větší než nebo rovno)

Iterujte přes pole

Iterace kolekcí v Perlu je čistá díky foreach. Postupně přiřadí každý prvek pole skalární proměnné.

Zde má $b hodnotu ‘pes’, potom ‘kočka’ a poté ‘úhoř’. Cyklus končí, když je vyčerpáno pole @a.

Pravidlo kudrnaté výztuhy

Perl má jedno pevné pravidlo syntaxe: složené závorky.

K zalamování bloků kódu byste měli použít { a }, i když blok obsahuje pouze jeden řádek.

Vynechejte závorky a kompilátor vyvolá chybu.

Psaní podprogramů

Funkce v Perlu jsou definovány pomocí klíčového slova sub.

Když je volán podprogram, všechny argumenty, které jsou mu předány, jsou umístěny do speciálního pole @_.

Proměnná $#_ vrací maximální index pole @_. Vzhledem k tomu, že pole jsou indexována nulou, efektivně to dává počet parametrů mínus jedna.

Je to trochu matoucí, ale jakmile si na to zvyknete, je to účinné.

Rozsahy proměnných a návratové hodnoty

Abyste zabránili zahlcení globálního jmenného prostoru uvnitř funkce, deklarujte místní proměnné pomocí klíčového slova local.

Funkci můžete také volat explicitně pomocí symbolu &.

Technicky je & vyžadováno pouze v případě nejednoznačnosti pro analyzátor. Ale mnoho vývojářů to kvůli přehlednosti používá ze zvyku.

Chcete-li odeslat výsledek zpět do volacího kódu, použijte klíčové slovo return.

Vstup a výstup

Čtení ze standardního vstupu (STDIN ) je jednoduché. Operátor lomené závorky čte data řádek po řádku.

To předpokládá, že vstup je platné celé číslo. Pokud uživatel zadá odpadky, logika se zlomí.

Chcete-li zadat jeden znak, použijte getc :

Nebo použijte funkci read, která určuje délku vstupních dat k zachycení.

Číslo 1 na konci znamená, že se čte pouze jeden znak.

Data prostředí a příkazového řádku

Perl poskytuje přístup k systémovým datům prostřednictvím globálních proměnných.

Hash %ENV obsahuje všechny proměnné prostředí. Pamatujte, že klíče musí být velkými písmeny.

Pokud potřebujete získat přístup k argumentům příkazového řádku, podívejte se na pole @ARGV.

  • $ARGV[0] je první argument.
  • $ARGV[1] je druhý argument.
  • $#ARGV udává index posledního argumentu (počet mínus jedna).

To usnadňuje vytváření skriptů, které přijímají dynamický vstup, aniž by bylo nutné pevně zakódovat hodnoty.

Je Perl stále aktuální i dnes?

To je férová otázka. Používají programátoři stále Perl? Ano.

Používá se Perl ještě v roce 2024? Ano, i když se jeho role změnila. Jedná se o jazyk na vysoké úrovni, univerzální, interpretovaný, dynamický jazyk. Nedominuje novým projektům vývoje webových aplikací jako Python nebo Node.js.

Perl však zůstává výkonným nástrojem pro správu systému a podporu staršího kódu. Vyniká zpracováním textu a rychlým skriptováním.