16
Introdução à programaçao em PERL http://www:activestate.com/ Products/ActivePerl/ vi Lúcio, Vasco Amaral, Programação em PERL, A-Editora de Informática

Introdução à programaçao em PERL

  • Upload
    misae

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

Introdução à programaçao em PERL. http://www:activestate.com/Products/ActivePerl/. Levi Lúcio, Vasco Amaral, Programação em PERL, FCA-Editora de Informática. Objectivos. ler o texto de um ficheiro linha a linha, e escrever num ficheiro linha a linha. processar o texto:. - PowerPoint PPT Presentation

Citation preview

Page 1: Introdução à programaçao em PERL

Introdução à programaçao em PERL

http://www:activestate.com/Products/ActivePerl/

Levi Lúcio, Vasco Amaral, Programação em PERL,

FCA-Editora de Informática

Page 2: Introdução à programaçao em PERL

Objectivos

• ler o texto de um ficheiro linha a linha, e escrever num ficheiro linha a linha.

• processar o texto:

tokenizer (quebrar o texto em palavras) contagem de palavras, frequências, ...

bigramas, trigramas ... calcular similaridade entre palavras.

Page 3: Introdução à programaçao em PERL

Estrutura do Programa 1

• Escreve: “Cómo te chamas?”

• Lê o nome escrito pelo usuario

• Escreve o nome que foi lido

Page 4: Introdução à programaçao em PERL

Instruções do Programa 1

• print imprime texto (no terminal, num ficheiro...)

• <STDIN> lê um conjunto de caracteres introduzidos pelo teclado no terminal.

• $x=<STDIN> lê um conjunto de caracteres do teclado e os coloca na variável $x.

• chop $x corta o caracter de nova linha (\n) que se encontra no valor de $x.

Page 5: Introdução à programaçao em PERL

Que é um programa?

• Um programa é um conjunto de instruçoes (print, assignaçao, leitura, ...)

• As instruçoes simples sao terminadas por ‘;’ (ponto e vírgula)

• Quando corremos o programa, as instruçoes são executadas sequêncialmente.

Page 6: Introdução à programaçao em PERL

Tipos de entidades de um programa

• escalares: números, cadeias de caracteres

• instruçoes: simples: print, =, chop...complexas: if, while...

• listas

• tabelas (hashes)

• Descritores Input/Output: STDIN, STDOUT, arquivos de entrada, arq. de saída...

Page 7: Introdução à programaçao em PERL

Tipos de variáveis

• escalares: $var

• listas: @var

• tabelas: %var

Page 8: Introdução à programaçao em PERL

Estrutura do tokenizer

• Abre um ficheiro texto (.txt)

• Lê linha a linha o texto

• Escreve em um outro ficheiro as palavras do texto (cada palavra em uma linha)

Page 9: Introdução à programaçao em PERL

Instruções do tokenizer • open (Arquivo, “< microcorpus.txt”)Abre um ficheiro para leitura.

• while ($linha = <Arquivo>) { instrução1; instrução2; ... } Lê uma a uma as linhas do ficheiro, e cada linha é colocada na variável $linha. Após a leitura de uma linha, executa-se o bloco de instruções (entre chaves). Isto é repetido até chegar á última linha do ficheiro

Page 10: Introdução à programaçao em PERL

Instruções do tokenizer

• @pals = split (“ ”, $linha);Divide-se a cadeia $linha cada vez que aparece um espaço em branco. As sucessivas divisões são colocadas na lista @pals.

• foreach $pal (@pals) { instrução1; instrução2... } Uma vez pegado em um elemento da lista @pals e colocado na variável $pal, executam-se as instruções do bloco. Isto é repetido com todos os elementos da lista.

Page 11: Introdução à programaçao em PERL

Instruções iterativas

foreach $var @lista { bloco } O bloco de instruções será executado um número de vezes correspondente ao número de elementos na lista, sendo que para cada iteração uma variável conterá o valor do elemento da lista.

while (expressão) { bloco } O bloco será executado até que a expressão se torne falsa:

while ($cont < 5) { print “$cont \n”; $cont++;}

Page 12: Introdução à programaçao em PERL

A instrução IF

if (expressão) { bloco do if }else { bloco do else }Se a expressão é verdade, executam-se as instruções contidas no bloco do if. Caso contrário, executa-se o bloco de instruções do else.

Expressões falsas:1 > 2 ; 0 ; “”, 1-1

Expressões verdadeiras:1 < 2 ; os números excepto o 0; as strings excepto “”

Page 13: Introdução à programaçao em PERL

Pattern-Matching

• if ($line =~ /Maria/) { print $line;}Se a subcadeia “Maria” se encontra dentro da cadeia $line, então afichamos a cadeia $line.

•$line =~ s/\,/ \,/;Se aparece o caracter “,” na cadeia $line, então substituimos esse caracter pelos dois caracteres “ ,” (i.e. introduzimos um espaço antes da vírgula).

Page 14: Introdução à programaçao em PERL

Estrutura do “contagem.pl”

• Abre um ficheiro com tokens

• Lê linha a linha o ficheiro (cada linha é um token) : - conta as ocurrências de cada token, - conta as ocurrências da subcadeia “livr”,

- conta as ocurrências de vírgulas e pontos.

• Escreve em um ficheiro os resultados das contagens.

Page 15: Introdução à programaçao em PERL

Instruções do contagem.pl

while ($token = <Arquivo>) { $contar{$token}++;} Lê-se linha a linha o arquivo e construe-se uma tabela: %contar. Cada chave da tabela é um token. O valor para cada chave é o número de vezes que o token é lido:

$contar{“livro”} = 2$contar{“Maria”} = 3$contar{“,”} = 8

Page 16: Introdução à programaçao em PERL

Listas e Tabelas

@notas = (“pedro”, 10, “maria”, 18)

$notas[0] = “pedro”$notas[1] = 10$notas[2] = “maria” $notas[3] = 18

%notas = (“pedro” => 10, “maria” => 18)

$notas{“pedro”} = 10$notas{“maria”} = 18