Sei sulla pagina 1di 7

PERL OPERATORI LOGICI &&(and) ||(or) si sau FUNCTIA WHILE O bucla repetitiva ce functioneaza pe baza unei conditii While

(conditie) { instructiuni; } FUNCTIA IF if (conditie) { instructiuni; } elsif (conditie) { instructiuni; } else {instructiuni; } !(not) not

IDENTIFICARE NR PARE SI NR IMPARE $oprire ='text'; while ($oprire ne 'exit') { print " Introduceti un numar:"; $tastatura = <>; chomp $tastatura; $oprire = $ tastatura; print " S-a tastat $ tastatura\n"; if ( $tastatura ne 'exit') { $paritate = $ tastatura%2; print "Paritatea este $ paritate\n"; if ($paritate == 0) { print "numarul introdus este par\n": } if ($paritate!=0) } print " numarul introdus este impar\n"; } } }

FUNCTIA ARRAY

@secvente = ( 'TTATTATGTT','GCTCAGTTCT','GACCTCTAA'); @secvente = (TTATTATGTT, GCTCAGTTCT, GACCTCTTAA); @secvente = qw (TTATTATGTT GCTCAGTTCT GACCTCTTAA); print "$secvente[1]\n"; # afisarea unui element din cadru; print "$secvente\n]n"; # afisarea intregului array; # Adaugarea de componente noi la un array $secvente[1] ='CCCCGCGGTA'; $secvente[3] ='AAAACATGAA'; $secvente[5] ='CCCCCCATGAA';

FUNCTIA DE AFISARE A ARRAY-ULUI

$# secvente +1 -> afisarea nr de componente/ sau scalar @secvente, -> se aplica pe intreg tabloul si arata doar componentele scalare $index= $#secvente; $componenta- $secvente[index] @secvente= (@secvente, 'TTTTTTTTTTT'); -> adaugarea de componente la array-ul an terior fara a folosi indexul @componente=('AC','GC','TA'); @secvente( @secvente,@componente);

ELIMINAREA ELEMENTELOR DIN ARRAY (splice)

@elemente_ramase = splice @secvente, 1,2; -> 1 - locul indexului -> 2 - nr de componente la rand; EX: @secvente @elemente @secvente @elemente = = = = ( AAA, ACE, GGT, ACT, CGT); splice @secvente,2,3; (AAA, ACE); (GGT, ACT, CGT);

EXTRAGEREA UNOR COMPONENTE DIN CADRUL ARRAY-ului

@componente= @secvente[1..3];

#Cazuri de initializare de array-uri cu caracter particular @zece = (1..10); @o_suta = (1..100); @alfabet = (a..z); @Alfabet = (A..Z);

# Adaugarea sau eliminarea unui singur element din array push(@ secvente, 'GGGGGGTGGG', 'SSS'); -> Adauga componente la sfarsit unshift(@ secvente, AAGGTGTGT','DDD'); -> adauga componente la inceput pop (@secvente); -> sterge ultimul element shift (@secvente); -> distruge primul element

VARIABILELE DE TIP HASH

-> elemente de tip scalar fara a folosi indexul, ordinea fiind aleatorie %hash %nucleotide = ( A=> Adenina, T => Timina, C=> Citozina, G => Guanina); EX: %hash = ( A=> 124, B=>629, c=> 30); A+B = 124 + 629 @simboluri = keys %nucleotide; $dimensiune = keys %nucleotide; print @simboluri\n;- simbolurile nucleotidelor print "acestea sunt in numar de: $dimensiune\n";

#adaugare de componente la hash

$nucleotide{'U'}= 'Uracil'; #scoaterea unui element din hash delete $nucleotide{'T'};

#impartirea unui hash %baza_de_gene = ( Om => 31000, Arabidopsis => 26000, 'Viermi nematozi'=> 18000, Drojdie => 6000, 'Musca de otet'=> 13000, 'Microbul tuberculozei'=> 4000); @alegere @ baza_de_gene{ Om, Musca de otet, microbul tuberculozei, viermi nemato zi, Drojdie}; $adunare = @alegere[0] + @alegere [1] + @alegere [2]; si va afisa 31000 + 26000 + 180000 = .... accesarea componentelor EX : $hash{A} + $hash{A} = 124 + 124; Se Definesc variabilele : => use strict -> obliga variabilele sa se ordoneze

ALTE FUNCTII UTILE

$sir ='accgcggttcgtactgaggaa'; $lungime = length $sir; $cod = ord $sir -> Returneaza codul ASCII al primului caracter din sir $caracter= chr ($cod) - returneaza caracterul ASCII corespunzator; $sirnou = substr( $sir, 3, 4) Extragerea unei portiuni din sir 3 -> pozitia in sir; 4 -> scoate urmatoarele 4 caractere din sir; substr-> mai accepta si functia de inlocui o portiune substr ($sir,3, 4, 'aaaaa') -> scoate 4 caractere de pe pozitia 3 si adauga in l ocul lor cu cat are nevoie 'aaaaa'

$sirnou = uc $sir -> transforma toate caracterele din sir cu majuscule; $sirnou = lc $sir -> transforma toate caracterele din sir cu minuscule;

$caracter ='g' $rezultat = rindex($sir, $caracter); -> Identifica ultima aparitie a caracterulu i g in index $sir2 = 'accg,ccgt,ttgg, ccctgt'; $sirnou = split (',',$sir2); se genereaza un array nou cu unele componente ale s irului initial de unde vreau sa le impart $imax = $#sirnou +1;

FUNCTIA UNTIL

-> pana ce nu se indeplineste condita executa instructiunile until (conditia) { instructiuni; }

FUNCTIA FOR

for($i =0;$i<=$max;$i++) { instructiunile; }

FUNCTIA FOREACH

foreach(@array) {instructiuni; }

FUNCTIA UNLESS

-> Daca nu se indeplineste conditia atunci executa instructiunile unless (conditie) { instructiuni; }

CITIRE FISIER CU PERL

introducerea numelui fisierului: $nume_fisier = <STDIN>; chomp $nume_fisier; #se elimina \n datorat tastei Enter open( FISIER, "<$nume_fisier") or die $!; While (my $linie = <FISIER>) { print $linie; } close FISIER; SAU #use lib; $nume_fisier = @Argv[0]; open( FISIER, "<$nume_fisier"); @continut = <FISIER>; print @continut; print "\n\n"; $index = $#continut; for ($i=0;$i<= $index; $i++) { chomp $continut[$]; } $concatenare.=$continut[$i]; print "indexul maxim este $index \n\n"; print "$concatenare"; close FISIER;

SCRIEREA UNUI FISIER

->prin adaugare sau prin suprascriere

#Se creeaza un nou fisier (fisier1.txt) in care #se va scrie mereu prin adaugarea a (>>) continutul #obtinut prin concatenarea secventelor din fisier.txt #ori de cate ori este rulat programul open (SCRIERE, ">>fisier1.txt"); print scriere $concatenare; close SCRIERE;

OPERATOR DE POTRIVIRE (binding operator) (=~) cautare unor bucati de secventa ce vreau sa le incarc sau nu (CCGT) $line =~ /CC GT/ while ($line = <>) { print $line if $line =~ /CCGT/; } SAU if ($line=~/CCGT/) { print $line; } OPERATOR DE NEPOTRIVIRE (!~)

Potrebbero piacerti anche