system("ls"); system("ls > x.txt") && die "nelze vytvorit soubor x.txt"; $adr = system("ls > x.txt");První příkaz vypíše na standardní výstup obsah adresáře,
Více příkazů v parametru se oddělí středníkem nebo znakem pro konec řádku. Např:
system("ls > x.txt; cat x.txt; who");Funkce system() může mít také více parametrů , které se uvání oddělené čárkou. První parametr je interpretován jako příkaz a tedy spuštěn. Další parametry jsou interpretovány jako parametry spuštěného příkazu. Příklad:
system "cat","x.txt","a.txt";Provede příkaz cat, kterému jako parametry předá soubor x.txt a a.txt.
$datum = "dnes je ".`date`; $uz = "seznam uzivatelu\n".`who`; print $datum; print $uz;Toto spuštění příkazu vrací hodnotu ve tvaru řetězce, který je potřeba uložit do proměnné, neposílá nic na standardní výstup. Použijeme-li toto volání v kontextu pole (např. spolu s funkcí foreach) vrací víceřádkový výsledek příkazu jako seznam řetězců (řádek). Příklad:
foreach $rad (`who`) { $rad =~ /(\S+)\s+(\S+)\s+(.*)/; print "kdo $1 kde $2 kdy $3\n"; }
Příklad:
Obsah adresáře můžeme předat k dalšímu zpracování příkazem:
open(ADR,"ls |") || die "chyba\n";
kde: ls je příkaz unixu pro výpis adresáře, příkaz die vypíše na standardní výstup uvedenou zprávu, pokud není možné provést open.
E-mail můžeme ze scriptu výhodně poslat např.
open(ZPRAVA,"| mailx Zprava $adr);
kde: mailx je unixový program pro e-mail, Zprava je subject mailu a $adr je proměnná obsahující adresáta.