Vyhledání a nahrazení
[vyraz=~][m]/vzor/[g][i][o]
Ve výrazu (implicitně $_) se hledá vzor. Při uvedení m je možné volit oddělovač.
Volby: g - globálně, i- caseinsenzitive, o - provádí 1x interpolace proměnných.
[$VAR=~]s/vzor/nahrada/[g][i][e][o]
hledá vzor a nahradí je nahradou, vrací počet provedených substitucí.
Volby: g - všechny výskyty, e - náhradu chápe jako výraz,
i,o - stejný význam jako u vyhledání.
[$VAR=~]tr/seznam1/seznam2/[c][d][s]
nahradí všechny výskyty znaků v seznamu1 odpovídajícími znaky v seznamu2. Vrací počet nahrazených znaků.
Volby: c - komplementární volby,
d - zruší všechny znaky, které nejsou v seznamu1
s - stejné po sobě jdoucí znaky ze seznamu1 nahradí jedním znakem ze seznamu2
|
Spolupráce se systémem
| alarm(vyraz) | Po počtu sekund daných výrazem bude vydán signál SIGALRM |
| chdir[(vyraz)] | změní pracovní adresář, při vynechání výrazu změní adresář na $ENV{"HOME"} |
| chroot(jmenosoub) | Změní root adresář pro proces ajeho potomky |
| die[(seznam)] | Tiskne seznam na STDERR a ukončí běh s aktuální hodnotou proměnné $! |
| exec(seznam) | Spustí příkazy systému uvedené v seznamu a skript ukončí. |
| exit(vyraz) | Ukončí skript s hodnotou výrazu. |
| fork | Provede systémové volání fork(2) |
| getlogin | Vrací aktuální login jméno procesu. |
| getpgrp[(pid)] | Vrací číslo skupiny procesů procesu s PID. |
| getppid | Vrací ID rodičovského procesu. |
| getpriority(WHICH,WHO) | Vrací aktuální prioritu procesu, skupinu procesu nebo uživatele. |
| kill(seznam) | Pošle signál procesům v seznamu. První prvek v seznamu je signál (číslo nebo jméno). |
| setpgrp(PID,PGRP) | Zařadí proces PID do skupiny procesů. |
| setpriority(WHICH,WHO,PRIO) | Nastaví aktuální prioritu procesu, číslo skupiny procesů nebo uživatele. |
| sleep[(vyraz)] | Uspí proces na počet sekund daných výrazem. Bez parametru vrací počet sekund, po které je proces uspán. |
| syscall(seznam) | Volání systémových volání, volání je první prvek seznamu, další prvky jsou předávané argumenty. |
| system(seznam) | Spustí příkazy systému uvedené v seznamu tak, že provede fork a rodičovský proces čeká na ukončení potomka. |
| times | Vrací čtyřprvkové pole ($user, $system, $cuser, $csystem). |
| umask[(vyraz)] | Nastaví umask pro proces a vrací starý. Bez parametru vrací aktuální umask. |
| wait | Čeká na ukončení potomka a vrací pid ukončeného procesu. |
| warn(seznam) | Tiskne zprávu na STDERR jako die, ale neukončuje script. |
|
Různé
| caller[(vyraz)] | vrací pole ($package,$file,$line,...) pro dané volání procedury
caller vrací informace pro aktuální proceduru
caller(1) pro tu, ze které byla procedura volaná, atd. |
| local(seznam) | vytvoří lokální pole pro blok, proceduru nebo eval, které obsahuje hodnoty proměnných v seznamu. |
| require(vyraz) | začlení do scriptu uvedený soubor z knihovny. |
| scalar(vyraz) | Vyhodnotí výray ve skalárním kontextu. |
| sub jmeno {vyraz;..} | definuje proceduru, parametry jsou předávány v poli @_ |
| wantarray | Vrací true, pokud aktuální kontext očekává pole |
|
Formát
format [JMENO] =
definice
.
definice popisuje vzhled řádek a obsahuje proměnné, jejichž hodnoty doplní do polí řádků. Typy polí jsou:
|
@<<<... | vlevo zarovnané pole | |
@>>>... | vpravo zarovnané pole | |
@||| | centrované pole | |
@#.## | numeriký formát s desetinou tečkou | |
@* | víceřádkové pole |
Délka pole je počet znaků včetně znaku @.
Pro víceřádkový blok použijte znak ^ místo znaku @.
Znak ~ použijte, pokud nechcete tisknou řádku, které je prázdná.
Znaky ~~ použijte na začátku řádky, chcete-li řádek opakovat pro všechny pole.
Nastavením proměnné $- na nulu si vynutíte konec stránky.
Prohlédněte si i speciální proměnné $^,$~,$- a $=
|
Regulární výrazy
Speciální znaky:
|
. | libovolný znak, kromě znaku nový řádek. | |
+ | alespoň jeden výskyt předchozího znaku. | |
? | žádný nebo jeden výskyt předchozího znaku. | |
* | žádný nebo více výskytů předchozího znaku. | |
[...] | skupina znaků, vyhovat musí právě jeden. | |
[^...] | všechny znaky kromě uvedených v závorkách. | |
{N,M} | minimálně N krát a maximálně M krát opakování znaků. | |
(...) | skupina znaků později použitelná jako jeden prvek (proměnná 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,tabelátor,LF,) \S tj. [^ \r\t\n\f] | |
\1 - \9 | řetězec dříve nalezený uzavřený v (). | |
\b | hranice slova \B není hranice slova | |
^ | začátek řetězce |
| $ | konec řetězce |
|
\n,\r,\f,\t | mají svůj obvyklý význam |
|