Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
I/O folosind Pipe si Apelarea functiilor sistem
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

Exemplu: Afisarea spatiului ocupat de fisiere pe disc.

#! usr/bin/perl p4b5bd
# Afisarea spatiului ocupat de fisierele specificate
# Acest program apeleaza functia sistem (Unix) du din care obtine numele # fisierului si numarul de bytes ocupati, si reuneste aceste informatii cu alte # informatii utile

$files = join(' ',@ARGV);

# Semnul | redirecteaza datele afisate de du catre programul nostru

if(! open(DUPIPE,"du -sk $files | sort -nr |"))A die "Nu pot rula du! $!\n";
S printf "%8s %-8s %-16s %8s %s\n",'K-Bytes','Login','Nume','Modificat','Fisier';

while (<DUPIPE>)A
# proceseaza informatiile afisate de du
($kbytes,$filename) = split;

# apel sistem pentru aflarea mai multor informatii despre fisier
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime) = stat($filename);

#apel sistem pentru a asocia login si nume cu uid if($uid != $previous_uid)A
($login,$passwd,$uid,$gid,$quota,$coment,$realname,$dir,$shell) = getpwuid($uid);
$realname = split(', ',substr($realname,0,20));
$previous_uid = $uid;
S

# Converteste timpul ultimei modificari intr-o forma mai usor de citit
($sec,$min,$hour,$mday,$mon,%myear) = localtime($mtime);
$mmonth = $mon + 1;

printf "%8s %-8s %-16s %02s-%02d-%02d %s\n",$kbytes, $login,$realname,$myear,$mmonth,$mday,$filename;
S
Exemplu de rezultat afisat de program:

K-bytes Login Nume Modificat Fisier
12345 mr28602 Muresan Robert 99-10-10 abc.txt

12. Cautare.

Cautarea implica folosirea unor sabloane numite expresii regulare. Dupa cum se va vedea, aceasta da nastere la al patrulea paradox Perl: Regular expresion aren't. Expresiile regulare nu sunt(regulare).
Operatorul =I efectueaza cautarea dupa un sablon si inlocuirea. de exemplu, daca
$s = 'Unu doi trei patru''; atunci if ($s =I/doi trei/) Aprint YESS else Aprint NOS va tipari YES, deoarece sirul de caractere $s se potriveste cu sablonul "doi trei" if($s =I/unu/)Aprint YESS else Aprint NOS va tipari NO deoarece sirul nu se potriveste cu sablonul. Adaugand insa optiunea i pentru a ignora diferenta intre caracterele mari si caracterele mici, atunci urmatoarele linii vor afisa YES. if($s =I /one/i) Aprint YESS else Aprint NOS




Sabloanele pot contine o serie larga de optiuni pentru a face cautarea cat mai flexibila si generala.De exemplu un .(punct) se potriveste cu orice caracter, exceptand caracterul \n. if($s =I /l.mp/)Aprint YESS

va tipari YES pentru $s = "lamp", "lump", "slumped", dar nu si pentru $s = "lmp",sau "less amperes".
Parantezele () grupeaza elementele sablonului. Un asterisk * inseamna ca, caracterul, elementul, sau grupul de elemente anterior poate sa apara de mai multe ori sau deloc.Simila plus + inseamna ca elementul sau grupul de elemente anterior trebuie sa apara cel putin odata.Semnul intrebarii se potriveste cu o singura aparitie sau nici o aparitie.Exemple:

/fr.*nd/ se potriveste cu "frnd", "friend", "front and back"
/fr.+nd/ se potriveste cu "frond", "friend", "front and back" dar nu se potriveste cu "frnd".
/10*1/ se potriveste cu "11", "101", "1001", "100000001".
/b(an)*a/ se potriveste cu "ba", "bana", "banana", "banananana"
/flo?at/ se potriveste cu "flat" and "float" dar nu se potriveste cu "flooat"

Parantezele patrateai se potrivesc cu un singur caracter definit de ele. De exemplu:

a0123456789i se potriveste cu orice cifra
a0-9i se potriveste cu orice cifra
a0-9i+ se potriveste cu orice secventa de cifre
aa-zi+ se potriveste cu orice cuvant scris cu litere mici
aA-Zi+ se potriveste cu orice cuvant scris cu litere mari
aab ni* se potriveste cu sirul null "", sirul "b", orice numar de spatii,"banana an nnna"
a^...i se potriveste cu orice caracter care nu este "..."
a^0-9i se potriveste cu orice caracter care nu este cifra

Acoladele permit o specificare mult mai precisa a sirurilor care se repeta. Astfel a0-9iA6S se potriveste cu orice sir de cifre de lungime 6, iar a0-9iA6,10S se potriveste cu orice sir de cifre care are lungime cuprinsa intre 6 si 10.
Sabloanele pot sa apara oriunde in sirul de caractere daca nu sunt ancorate.Semnul ^ pus in afara parantezelor patrateai, ancoreaza sablonul la inceputul sirului de caractere, iar caracterul $ ancoreaza sablonul la sfarsitul sirului de caractere.De exemplu:

/at/ se potriveste cu "at", "attention", "flat", si "flatter"
/^at/ se potriveste cu "at" si "attention" dar nu si cu "flat"
/at$/ se potiveste cu "at" si "flat", dar nu si cu "attention"
/^at$/ se potriveste doar cu "at".
/^at$/i se potriveste cu "at", "At", "aT", si "AT".
/^a \ti*$/ se potriveste cu o linie goala, sau cu o linie ce contine oreice combinatie de spatii libere sau taburi

Caracterul Backslash. In general caracterele se potrivesc cu ele insele, cu exceptie caracterelor speciale de control cum ar fi:+ ? . ai () AS. Acestea trebuie prefixate cu un backslash \ pentru a fi considerate ca si caractere.
Bara verticala | este operatorul binar sau. Exemplu:

if ($answer =I/^y | ^yes |^yeah/i)A print "Afirmativ";
S va afisa "Afirmativ" pentru: y, yes, Yes, Yeah, Yeah rigth,etc...


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta