Literali si Operatori, Bucle si sistemul IO in Perl referat






Literali si Operatori

         Exemple: Numere si Caractere

           

            #!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')

           

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

           

           

            # O alta varianta a buclei de mai sus

           

            foreach $item(@ARGV)

           

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

            foreach (@ARGV)

           

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

           

                        print STDOUT 'Mai tastati ceva sau apasati CTRL - D pentru terminare'

            }





            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(;;)

            if ($@)

            if($!)

            }

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)

            ($infile,$outfile) = @ARGV;

            if (! -r $infile)

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

                        if ($ans eq 'e')

            }

            if ($ans eq 'a')

            else

           

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

           

            #4: Terminare

            close INPUT, OUTPUT;

            exit;










Copyright © Contact | Trimite referat


Ultimele referate adaugate
Mihai Beniuc
   - Mihai beniuc - „poezii"
Mihai Eminescu Mihai Eminescu
   - Mihai eminescu - student la berlin
Mircea Eliade Mircea Eliade
   - Mircea Eliade - Mioara Nazdravana (mioriţa)
Vasile Alecsandri Vasile Alecsandri
   - Chirita in provintie de Vasile Alecsandri -expunerea subiectului
Emil Girlenu Emil Girlenu
   - Dragoste de viata de Jack London
Ion Luca Caragiale Ion Luca Caragiale
   - Triumful talentului… (reproducere) de Ion Luca Caragiale
Mircea Eliade Mircea Eliade
   - Fantasticul in proza lui Mircea Eliade - La tiganci
Mihai Eminescu Mihai Eminescu
   - „Personalitate creatoare” si „figura a spiritului creator” eminescian
George Calinescu George Calinescu
   - Enigma Otiliei de George Calinescu - geneza, subiectul si tema romanului
Liviu Rebreanu Liviu Rebreanu
   - Arta literara in romanul Ion, - Liviu Rebreanu

















Cauta referat
Scriitori romani