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:
 
Literali si Operatori
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

Exemple: Numere si Caractere k5u10ud

#!usr/bin/perl print '013' , 'este numar prim', 004, ' nu este numar prim.'; print 7 + 3,' ' , 7 - 3
$x = 7; print $x print 'Nu afiseaza variabila $x si linie noua \n .' print 'Afiseaza $x si line noua \n'
$y = "Linie ce contin $x si se termina cu salt la linie noua \n." print $y;
$y = "Con"."catena"."re"; print $y

Acest program va afisa:

013 este numar prim 4 nu este numar prim. 10 4 Nu afiseaza variabila $x si linie noua \n.Afiseaza 7 si linie noua
Linie ce contine 7 si se termina cu salt la linie noua
Concatenare

Observam ca instructiunea print nu sare la linie noua decat daca se specifica caracterul \n intre ghilimele "". Aceasta o greseala des intalnita in programele Perl.
Totodata observam operatorul . (punct) care are ca efect concatenarea celor trei siruri de caractere.

Exemple: Comparatiile

O greseala des intalinta in programele Perl este confundarea operatorului de atribuire = cu operatorul de comparare numerica ==.
Totodata este recomandata folosirea operatorilor eq, ne, lt, gt pentru siruri de caracatere: if ( $x eq 'unu')
A print 'Siruri egale.'
S

Bucle si sistemul I/O in Perl.

Exemplu: Parametrii in linia de comanda si bucle iterative print "$#ARGV este indicele ultimului argument din linia de comanda.\n"

# Itereaza de la indicele 0 pana la indicele $#ARGV:
# Observam ca , constructia for este similara cu cea din C

for($i = 0; $i <= $#ARGV; $i++)
A print "Paramtrul $i este $ARGVa$ii.\n";
S

# O alta varianta a buclei de mai sus foreach $item(@ARGV)
A print "Cuvantul este: $item. \n";
S

# O varianta similara folosind de data asta variabila implicita Perl $_




foreach (@ARGV)
A print "Spun: $_ . \n";
S

Rularea programului va afisa:

> perl exemplu.pl Buna Dimineata, Elevi!
2 este indicele ultimului argument din linia de comanda
Parametrul 0 este Buna.
Parametrul 1 este Dimineata,.
Parametrul 3 este Elevi!
Cuvantul este: Buna.
Cuvantul este: Dimineata,.
Cuvantul este: Elevi!
Spun: Buna.
Spun: Dimineata,.
Spun: Elevi!.

Exemplu: Sistemul standard I/O print STDOUT "Tastati un text: ";
while($input = <STDIN>)
A chop $input; print STDOUT "Ati tastat : $input \n" if ($input eq '') Aprint STDERR "Nu ati tastat nimic!\n"S print STDOUT "Mai tastati ceva sau apasati CTRL - D pentru terminare"
S print STDOUT "Atat a fost."

Obs1. Conditia din directiva while este o directiva de asignare, asigneaza urmatoarea inregistrare de la intrarea standard, variabilei $input. La sfarsit de fisier acesta nu va asigna variabilei $input valoarea null, ci o valoare nedefinita, care in acest context este evaulata ca fiind null. Deci lini a while($input = <STDIN>) face trei lucruri: citeste o inregistrare, o asigneaza variabilei $input si verifica daca $input este nedefinita, in acest context ea fiind evaluata la valoarea null. In alte contexte, Perl evauleaza o variabila ca fiind zero sau null. De exemplu daca $i nu este definita, atunci $i++ va atribui variabilei $i valoare 1. De aici rezulta al treilea paradox Perl: Side effects can yield an elegant face or a pain in the rear. Efectele secundare pot conduce la lucruri elegante sau batai de cap.
Obs2. Campurile de date sunt in mod implicit delimitate de caracterul \n, care in exemplul de mai sus este inclus ca si ultimul caracter al variabilei $input. Functia chop elimina acest ultim caracter din variabila $input. In Perl 5 este introdusa o noua functie chomp care elimina ultimele caractere doar daca acestea sunt definite ca delimitatori de inregistrari, prin variabila globala $/.

Exemplu: Executarea unui string ca si porgram Perl

#!usr/bin/perl for(;;)A print '(', join(', ',@Result),') ?'; last unless $Input = <STDIN>;
$? = ''; $@ = ''; $! = '';
@Result = eval $Input; if ($?) Aprint 'status=', $?,' 'S if ($@) Aprint 'eroare=', $@,' 'S if($!) Aprint 'nreroare=',$!+0,': ',$!',' 'S
S

Functia eval, evalueaza un sir de caractere interpretand-ul ca un program scris in Perl. $@ reprezinta mesajul de eroare rezultat din ultimul apel al functiei eval sau do.
Rularea programului va afisa:

>perl perls.pl
() ? sqrt(2)
(1.4142)

Exemplu: I/O cu fisiere

#! usr/bin/perl
# program pentru inversarea fiecarei linii dintr-un fisier.

# 1: Obtinerea numelui fisierelor din parametrii transmisi in linia de comanda

if($#ARGV != 1)A die "Folosire: $0 fisier_sursa fisier_destinatie \n";
S
($infile,$outfile) = @ARGV; if (! -r $infile)A die "Nu pot citi fisierul de intrare $infile \n";

S

#2: Validarea fisierelor
# Daca prima parte a expresiei in cazul operatorului || (or) este adevarata, Perl # nu mai evalueaza si restul continutului. Daca fisierul de intrare sa putut
# deschide atunci executia programului continua, altfel se evalueaza instructiunea # die si executia programului se incheie.

open($INPUT,"<$infile") || die "Nu pot deschide fisierul $infile ! \n"; if( -e $outfile)A print STDERR "Fisierul $outfile exista!\n"; until ($ans eq 'i' || $ans eq 'a' || $ans eq 'e')A print STDERR "Inlocuiesc, Adaugare, or iEsire?";
$ans = getc(STDIN);
S if ($ans eq 'e') AexitS
S

if ($ans eq 'a') A$mode = '>>'S else A$mode = '>'S open(OUTPUT,"$mode$outfile") || die "Nu pot deschide fisierul destinatie!";

#3: Citeste fiecare linie din fisierul sursa, inverseaza linia si o scrie in fisierul # destinatie

while(<INPUT>)A chop $_;
$_ = reverse $_; print OUTPUT $_,"\n";
S

#4: Terminare

close INPUT, OUTPUT; exit;


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