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. |
| fork | Provede systemove volani fork(2) |
| getlogin | Vraci aktualni login jmeno procesu. |
| getpgrp[(pid)] | Vraci cislo skupiny procesu procesu s PID. |
| getppid | Vraci 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. |
| times | Vraci ctyrprvkove pole ($user, $system, $cuser, $csystem). |
| umask[(vyraz)] | Nastavi umask pro proces a vraci stary. Bez parametru vraci aktualni umask. |
| wait | Ceka 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 @_ |
| wantarray | Vraci 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 - \9 | retezec drive nalezeny uzavreny v (). | |
\b | hranice slova \B neni hranice slova | |
^ | zacatek retezce |
| $ | konec retezce |
|
\n,\r,\f,\t | maji svuj obvykly vyznam |
|