Vyhledani a nahrazeni

[vyraz=~][m]/vzor/[g][i][o]
Ve vyrazu (implicitne $_) se hleda vzor. Pri uvedeni m je mozne volit oddelovac.
Volby: g - globalne, i- caseinsenzitive,
o - provadi 1x interpolace promennych.
[$VAR=~]s/vzor/nahrada/[g][i][e][o]
hleda vzor a nahradi je nahradou, vraci pocet provedenych substituci.
Volby: g - vsechny vyskyty, e - nahradu chape jako vyraz,
i,o - stejny vyznam jako u vyhledani.
[$VAR=~]tr/seznam1/seznam2/[c][d][s]
nahradi vsechny vyskyty znaku v seznamu1 odpovidajicimi znaky v seznamu2. Vraci pocet nahrazenych znaku.
Volby:
c - komplementarni volby,
d - zrusi vsechny znaky, ktere nejsou v seznamu1
s - stejne po sobe jdouci znaky ze seznamu1 nahradi jednim znakem ze seznamu2

Spoluprace se systemem

alarm(vyraz)Po poctu sekund danych vyrazem bude vydan signal SIGALRM
chdir[(vyraz)]zmeni pracovni adresar, pri vynechani vyrazu zmeni adresar na $ENV{"HOME"}
chroot(jmenosoub)Zmeni root adresar pro proces ajeho potomky
die[(seznam)]Tiskne seznam na STDERR a ukonci beh s aktualni hodnotou promenne $!
exec(seznam)Spusti prikazy systemu uvedene v seznamu a skript ukonci.
exit(vyraz)Ukonci skript s hodnotou vyrazu.
forkProvede systemove volani fork(2)
getloginVraci aktualni login jmeno procesu.
getpgrp[(pid)]Vraci cislo skupiny procesu procesu s PID.
getppidVraci ID rodicovskeho procesu.
getpriority(WHICH,WHO)Vraci aktualni prioritu procesu, skupinu procesu nebo uzivatele.
kill(seznam)Posle signal procesum v seznamu. Prvni prvek v seznamu je signal (cislo nebo jmeno).
setpgrp(PID,PGRP)Zaradi proces PID do skupiny procesu.
setpriority(WHICH,WHO,PRIO)Nastavi aktualni prioritu procesu, cislo skupiny procesu nebo uzivatele.
sleep[(vyraz)]Uspi proces na pocet sekund danych vyrazem. Bez parametru vraci pocet sekund, po ktere je proces uspan.
syscall(seznam)Volani systemovych volani, volani je prvni prvek seznamu, dalsi prvky jsou predavane argumenty.
system(seznam)Spusti prikazy systemu uvedene v seznamu tak, ze provede fork a rodicovsky proces ceka na ukonceni potomka.
timesVraci ctyrprvkove pole ($user, $system, $cuser, $csystem).
umask[(vyraz)]Nastavi umask pro proces a vraci stary. Bez parametru vraci aktualni umask.
waitCeka na ukonceni potomka a vraci pid ukonceneho procesu.
warn(seznam)Tiskne zpravu na STDERR jako die, ale neukoncuje script.

Ruzne

caller[(vyraz)]vraci pole ($package,$file,$line,...) pro dane volani procedury
caller vraci informace pro aktualni proceduru
caller(1) pro tu, ze ktere byla procedura volana, atd.
local(seznam)vytvori lokalni pole pro blok, proceduru nebo eval, ktere obsahuje hodnoty promennych v seznamu.
require(vyraz)zacleni do scriptu uvedeny soubor z knihovny.
scalar(vyraz)Vyhodnoti vyray ve skalarnim kontextu.
sub jmeno {vyraz;..}definuje proceduru, parametry jsou predavany v poli @_
wantarrayVraci true, pokud aktualni kontext ocekava pole

Format

format [JMENO] =
definice
.

definice popisuje vzhled radek a obsahuje promenne, jejichz hodnoty doplni do poli radku.
Typy poli jsou:
@<<<... vlevo zarovnane pole
@>>>... vpravo zarovnane pole
@||| centrovane pole
@#.## numeriky format s desetinou teckou
@* viceradkove pole
Delka pole je pocet znaku vcetne znaku @. Pro viceradkovy blok pouzijte znak ^ misto znaku @.
Znak ~ pouzijte, pokud nechcete tisknou radku, ktere je prazdna.
Znaky ~~ pouzijte na zacatku radky, chcete-li radek opakovat pro vsechny pole.
Nastavenim promenne $- na nulu si vynutite konec stranky.
Prohlednete si i specialni promenne $^,$~,$- a $=

Regularni vyrazy

Specialni znaky:
. libovolny znak, krome znaku novy radek.
+ alespon jeden vyskyt predchoziho znaku.
? zadny nebo jeden vyskyt predchoziho znaku.
* zadny nebo vice vyskytu predchoziho znaku.
[...] skupina znaku, vyhovat musi prave jeden.
[^...] vsechny znaky krome uvedenych v zavorkach.
{N,M} minimalne N krat a maximalne M krat opakovani znaku.
(...) skupina znaku pozdeji pouzitelna jako jeden prvek (promenna nebo \1 - \9).
(..|..|..) jedna z alternativ.
\d tj. [0-9] \D tj. [^0-9]
\w tj. [a-zA-Z0-9_] \W tj. [^a-zA-Z0-9_]
\s tj. [ \r\t\n\f] (mezera,CR,tabelator,LF,) \S tj. [^ \r\t\n\f]
\1 - \9retezec drive nalezeny uzavreny v ().
\b hranice slova \B neni hranice slova
^ zacatek retezce
$ konec retezce
\n,\r,\f,\t maji svuj obvykly vyznam