system("ls");
system("ls > x.txt") && die "nelze vytvorit soubor x.txt";
$adr = system("ls > x.txt");
Prvni prikaz vypise na standardni vystup obsah adresare,Vice prikazu v parametru se oddeli strednikem nebo znakem pro konec radku. Napr:
system("ls > x.txt; cat x.txt; who");
Funkce system() muze mit take vice parametru , ktere se uvani oddelene carkou. Prvni parametr je interpretovan jako prikaz a tedy spusten. Dalsi parametry jsou interpretovany jako parametry spusteneho prikazu. Priklad:
system "cat","x.txt","a.txt";Provede prikaz cat, kteremu jako parametry preda soubor x.txt a a.txt.
$datum = "dnes je ".`date`; $uz = "seznam uzivatelu\n".`who`; print $datum; print $uz;Toto spusteni prikazu vraci hodnotu ve tvaru retezce, ktery je potreba ulozit do promenne, neposila nic na standardni vystup. Pouzijeme-li toto volani v kontextu pole (napr. spolu s funkci foreach) vraci viceradkovy vysledek prikazu jako seznam retezcu (radek). Priklad:
foreach $rad (`who`) {
$rad =~ /(\S+)\s+(\S+)\s+(.*)/;
print "kdo $1 kde $2 kdy $3\n";
}
Priklad:
Obsah adresare muzeme predat k dalsimu zpracovani prikazem:
open(ADR,"ls |") || die "chyba\n";
kde: ls je prikaz unixu pro vypis adresare, prikaz die vypise na standardni vystup uvedenou zpravu, pokud neni mozne provest open.
E-mail muzeme ze scriptu vyhodne poslat napr.
open(ZPRAVA,"| mailx Zprava $adr);
kde: mailx je unixovy program pro e-mail, Zprava je subject mailu a $adr je promenna obsahujici adresata.