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