Portál AbcLinuxu, 27. dubna 2024 05:33

Programujeme v PERLu - I

6. 1. 2004 | Jindřich Skupa
Články - Programujeme v PERLu - I  

Dvoudílný článek vás provede základními principy práce s tímto univerzálním skriptovacím jazykem.

Asi by se slušelo na začátek vysvětlit, co je PERL vlastně zač. Je to skriptovací programovací jazyk, jehož "otcem" je Larry Wall. Původně byl určen pro práci s textem. Evoluce, která na PERL nezapomněla, z něho vytvořila mocný programovací jazyk použitelný téměř na cokoli. Syntaxí je velice podobný Céčku, proto pro Céčkaře nebude problém si tento jazyk velice rychle osvojit. Perl se dá použít na psaní webových aplikací, práci s textem, automatizačních nástrojů pro Linux, psaní síťových nástrojů a podobně. Vzhledem k tomu, že se bavíme o skriptovém jazyku, nebude problém s kompatibilitou aplikací, pokud bude stroj osazen interpretem jazyka.

První program, který se píše ve všech jazycích, je program "hello world".

#!/usr/bin/perl
print "Hello world \n";
printf ("Hello world \n");

První řádek říká, jaký intepret se má pro spuštění skriptu použít. Samotný # se používá pro psaní komentářů, vše od tohoto znaku do konce řádky perl ignoruje. Pro výpis se dá použít několik příkazů, buď céčkovský printf nebo prostý print.

Syntaxe:

print [kam] "výpis" ;

Pokud vynecháte [kam], použije se STDOUT.

printf ("text a odkazy na proměnné",seznam proměnných);

Teď jsme schopni něco vypsat, ale vypisovat statické texty je málo, budeme potřebovat nějaké proměnné. Filozofie proměnných je v perlu zcela odlišná například od Céčka. Máme jen tři typy proměnných: skalár, pole a hash. Ani deklarace proměnných není potřeba, prvním použitím se proměnné deklarují samy.

Do skalární proměnné (označuje se $ před názvem) můžeme uložit "libovolně" dlouhý text nebo čísla. Pokud budeme chtít spočítat třeba nákup, tak napíšeme:

#!/usr/bin/perl
$cena="15Kč";
$mnozstvi="3kg";
$celkovácena=$cena*$mnozstvi;
print "$celkovacena";

Perl se v tomto případě pokouší vše od začátku proměnné až k prvnímu písmenu brát jako číslici a jako s takovou s ní i zachází.

Dalším datovým typem je pole (více skalárních proměnných v jedné, na jednotlivé prvky se odkazujeme indexem), které se jako celek označuje @. Prvky pole se označují $název_pole[5]. Pokud zadáme jako index -1, bude to znamenat poslední prvek. První prvek se skrývá pod indexem 0. Pole lze plnit po jednom prvku nebo následujícím přiřazením:

@pole=(seznam hodnot);

Třetím typem jsou hashe (asociativní seznamy). Volně se dají přirovnat k polím, jen se na jejich prvky místo indexem odkazujeme pomocí jejich názvů. Označují se % před názvem, opět se k jednotlivým prvkům přistupuje přes $NAZEV{'jmeno_prvku'}. Plní se následujícím postupem:

#!/usr/bin/perl
%HASH=('FIRST',"prvni",'SECOND',"druhy",'THIRD',"třeti");
#%HASH=('FIRST=>"prvni",'SECOND'=>"druhy",'THIRD'=>"třeti"); - druhý způsob plnění hashe

print "$HASH{'FIRST'}\n";
print "$HASH{'SECOND'}\n";
print "$HASH{'THIRD'}\n";

Většinou je třeba přijímat data od uživatele. To můžeme pomocí parametrů při spuštění nebo ze souboru či klávesnice (ta je taky soubor - STDIN) za chodu programu. Uvedu nejprve třetí možnost a postupně se dopracuji k ostatním. Načtení řetězce z klávesnice (i souboru) se provádí prostým přiřazením:

$my_string=<ovladač_souboru>;

- u klávesnice se používá STDIN nebo se ovladač neuvede.

Ze souboru je to stejné, jen je třeba soubor nejprve otevřít. K tomu slouží následující kód:

#!/usr/bin/perl

open SOUBOR,"soubor.fil";
@file=<SOUBOR>;
print "@file";
close SOUBOR;

Za příkaz open se píše název ovladače souboru (slušňáci ho píší velkými písmeny), po kterém následuje v "" název souboru s právy, se kterými se má otevřít. Následně ho celý uloží do pole, kde každý prvek je jeden řádek souboru. Po použití je třeba soubor zavřít, k tomu slouží příkaz close, jehož parametrem je ovladač souboru.

Režimy otevírání souborů

Třetím možným způsobem jak programu předat data, je pomocí jeho argumentů. Ty se uloží do pole s názvem @ARGV. Počet parametů (prvků pole) se získává pomocí příkazu scalar @ARGV.

Na závěr prvního dílu uvedu takový malý seznam funkcí pro práci s poli, hashi a skaláry. V příštím díle nás čekají příkazy cyklů, podmínky, práce se soubory a podobně.

Funkce řetězců

Funkce polí a hashů

Související články

Programujeme v PERLu - II
BASH
Začíname KProgramovať
AbcLinuxu pro programátory
Apache Ant - jak na složité projekty

Odkazy a zdroje

perl.org
perl.com
CPAN: Comprehensive Perl Archive Network

Další články z této rubriky

LLVM a Clang – více než dobrá náhrada za GCC
Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Reverzujeme ovladače pro USB HID zařízení
Linux: systémové volání splice()
Programování v jazyce Vala - základní prvky jazyka

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.