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 |
|