890 likes | 1.11k Views
CURSO DE VERÃO EM BIOINFORMÁTICA ESTRUTURAL. PERL. Raquel C. de Melo Minardi raquelcm@dcc.ufmg.br. Primeiro programa em perl. Abra um editor de texto e escreva o programa A primeira linha deveria ser $!/ usr /bin/ perl
E N D
CURSO DE VERÃO EM BIOINFORMÁTICA ESTRUTURAL PERL Raquel C. de MeloMinardi raquelcm@dcc.ufmg.br
Primeiro programa em perl Abra um editor de texto e escreva o programa A primeiralinhadeveria ser $!/usr/bin/perl parainformaraosistemaqueisto é um programaemperl e parainformar o caminhopara o interpretadorperl no sistema Unix Escreva o código, porexemplo print “Este é meuprimeiroprogramaemperl.”; Salve com a extensão.pl Dêpermissão de execução chmod +x programa.pl Execute o programachamando ./programa.pl ouperl programa.pl Raquel C. de Melo Minardi 2/88
Primeiro programa em perl Aodigitar ./programa.pl ouperl programa.pl o programaseráinterpretado Se háerros de sintaxe no código, o interpretadoriráinformar e nãoexecutará o programa Raquel C. de Melo Minardi 3/88
Primeiro programa em perl Raquel C. de Melo Minardi 4/88
Primeiro programa em perl A opção–wnalinha #!/usr/bin/perl é umacondição de permissão de alertas (allow warnings) e é muitoútilnadepuração do seucódigo Comumenteusa-se também a linha use strict; queindicaque o interpretadoriráchecarosnomes das variáveisparaverificar se foramanteriormentedeclaradas Raquel C. de Melo Minardi 5/88
Variáveis Variáveissãonomesassociados a posições de memóriaquepodecontervalores Emperl, variáveisescalarespodemconternúmeros (inteirosou de pontoflutuante) oucadeias de caracteres (strings) e sãoidentificadasporcomeçarem com “$” $a, $b e $resultadosãoexemplos de variáveis Nomes de variáveisválidoscomeçam com umaletra e a seguirtêmumasequência de letrasnúmeros e underscores $a $nome $primeiro_nome $ultimoNome $bloco12 $c22e Raquel C. de Melo Minardi 6/88
Estados de variáveis Variáveisemperltêmtrêsestados exists:variávelfoideclaradamasnão tem valor defined:variáveltêm um valor quepode ser true ou false true:variável tem valor diferente de 0 ou “” Raquel C. de Melo Minardi 7/88
Literais e atribuições Literaissãovaloresconstantescomo2, 5 e “palavra”, porexemplo Valoressãoatribuídos a variáveisatravés do símbolo“=” $resultado = $a + $b; $t = “palavra”; Raquel C. de Melo Minardi 8/88
Números Internamente, osnúmerossãosemprearmazenadosempontoflutuantemasháváriaspossíveisrepresentações $a = 134; $a = -2004; $a = 56.79; $a – 56.78989; $a = 13e34; $a = -12E29; NUNCA COMEÇE UM NÚMERO COM ZERO! O NÚMERO SERÁ RECONHECIDO COMO UM NÚMERO EM OCTAL Raquel C. de Melo Minardi 9/88
Caracteres especiais Raquel C. de Melo Minardi 10/88
Operadores Perl suporta as operaçõesaritméticasbásicas Raquel C. de Melo Minardi 11/88
Operadores Parêntesespodem ser usadospara se indicarprecedênciadiferentedapadrão Existemabreviaçõesparaosoperadores Raquel C. de Melo Minardi 12/88
Operadores Raquel C. de Melo Minardi 13/88
Cadeias de caracteres (strings) Stringssãosequências de caracteres Strings sãodelimitadasporaspasduplas A string maiscurta é “” A string maislonga é tãocompridaquanto a memória do computadorpermitir Raquel C. de Melo Minardi 14/88
Operadores para strings A concatenação é a operaçãomaisconhecida entre strings O operador é o “.” A funçãolength é umafunçãopredefinidaqueretorna o comprimento de uma string Raquel C. de Melo Minardi 15/88
Cadeias de caracteres Raquel C. de Melo Minardi 16/88
Cadeias de caracteres Raquel C. de Melo Minardi 17/88
Strings entre aspas Certos caracteres quando precedidos de contrabarra entre aspas duplas têm um siginifcado especial \n→ nova linha \t → tabulação Variáveis são interpolaladas quando dentro de aspas duplas Se você quer usar “ como um literal dentro de uma string entre aspas duplas, use \” Raquel C. de Melo Minardi 18/88
Função split A função split quebra uma string de acordo com a posição de um conjunto de delimitadores O delimitador é escrito entre barras: /PADRÃO/ Raquel C. de Melo Minardi 19/88
Função split Raquel C. de Melo Minardi 20/88
Função split Raquel C. de Melo Minardi 21/88
Função split Raquel C. de Melo Minardi 22/88
Função split Raquel C. de Melo Minardi 23/88
Função substr A função substr extrai uma substring de uma string Recebe três argumentos: uma string a posição inicial o número de caracteres a serem retornados a partir da posição inicial Raquel C. de Melo Minardi 24/88
Função substr Raquel C. de Melo Minardi 25/88
Função substr Raquel C. de Melo Minardi 26/88
Interpolação Raquel C. de Melo Minardi 27/88
Interpolação Raquel C. de Melo Minardi 28/88
Entrada pelo console <STDIN> denota a entradapadrão Durante a execução de um programaperl, todavezque <STDIN> é invocado, o programapara e esperaque o usuáriodigiteumasequência de caracteresseguida de enter <STDIN> conteráentão a sequêncialida e pode ser atribuído a um escalar Raquel C. de Melo Minardi 29/88
Entrada pelo console Raquel C. de Melo Minardi 30/88
Impressão formatada A funçãoprintfpermiteformatar a umaimpressão Especificando o número de casasdecimais de um número Estabelecendoumaestrutura tabular atravésdainclusão de espaços e tabulações printf FILEHANDLE FORMATO, LISTA FORMATO contémuma string de controle LISTA contém a lista de variáveisqueserãoimpressassegundososformatosestabelecidos Raquel C. de Melo Minardi 31/88
Impressão formatada Raquel C. de Melo Minardi 32/88
Impressão formatada Raquel C. de Melo Minardi 33/88
Arranjos Como visto, umavariávelescalarcontém um valor numéricoouuma string Um arranjo é umaestrutura de dados composta e pode ser heterogênea Elecontémumalista de valoresnuméricos, ouumalista de strings ouumamistura deles A ordem é importante Emperl, arranjossãodefinidos com um símbolo “@” antes do nome Portanto, em um mesmoprogramapodemosterumavariávelescalar $var e um arranjo @var Raquel C. de Melo Minardi 34/88
Arranjos Raquel C. de Melo Minardi 35/88
Arranjos Raquel C. de Melo Minardi 36/88
Arranjos A funçãopushadiciona um valor ao final de umaarranjo A funçãoshiftrecupera o primeiro valor de um arranjo A funçãopop recupera o último valor de um arranjo Raquel C. de Melo Minardi 37/88
Arranjos Raquel C. de Melo Minardi 38/88
Arranjos Raquel C. de Melo Minardi 39/88
Arranjos A funçãopré-definida sort ordenaelementos de umaarranjo $a<=>$b : paracomparação entre números cmp : paracomparação entre strings 0 se sãoiguais 1 se $a>$b -1 se $b>$a Raquel C. de Melo Minardi 40/88
Arranjos Raquel C. de Melo Minardi 41/88
Arquivos A conexão entre um programaperl e arquivos de entrada e saídasãoosfilehandles Diferentemente das variáveis, filehandlesnão tem um prefixodefinidomassãonormalmenteescritos com letrasmaiúsculas Antes de se utilizar um filehandle, eledeve ser aberto: open (IF, $nomeArquivoEntrada): aberturaparaleitura open (OF, “>$nomeArquivoSaida”): aberturaparaescrita open (OF, “>>$nomeArquivoSaida”): aberturaparaescrita Fecharapós o uso close(IF) Raquel C. de Melo Minardi 42/88
Arquivos É recomendadotestarsempre se a abertura do arquivofoirealizada com sucesso e usar a funçãodieparaencerrar o programacasoalgumproblematenhaocorrido open (IF, $nomeArquivoEntrada) or die (“Nãofoipossívelabrir o arquivo”); Raquel C. de Melo Minardi 43/88
Arquivos Raquel C. de Melo Minardi 44/88
Arquivos Raquel C. de Melo Minardi 45/88
Arquivos Raquel C. de Melo Minardi 46/88
Arquivos Raquel C. de Melo Minardi 47/88
Arquivos Raquel C. de Melo Minardi 48/88
Arquivos Raquel C. de Melo Minardi 49/88
Estruturas de controle Estruturas de controlesãoaquelasquepodemalterar o fluxo de execução do programa Hábasicamentedoismecanismos: Estruturascondicionais Estruturas de repetição Raquel C. de Melo Minardi 50/88