1 / 57

PERL

PERL. Practical Extraction and Report Language. Um Pouco Sobre Perl. Perl é uma linguagem poderosa e adaptável a diversas situações.

amara
Download Presentation

PERL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PERL Practical Extraction and Report Language

  2. Um Pouco Sobre Perl • Perl é uma linguagem poderosa e adaptável a diversas situações. • Sua primeira versão foi desenvolvida por Larry Wall, um linguista que trabalhava para a NASA na década de 80 como administrador de sistemas. Era utilizada para facilitar o processamento de relatórios.

  3. Um Pouco Sobre Perl • É uma linguagem criada para processar e manipular textos. • Nos dias atuais é utilizada na administração de sistemas, como interface para permitir a comunicação entre sistemas diferentes, na programação para a web, em bioinformática, ou mesmo em desenvolvimento de aplicativos.

  4. Um Pouco Sobre Perl • Na programação para web, Perl é muito utilizada e popular por suas características de manipulação de texto e rápido desenvolvimento, tanto que chega a ser conhecida como a “super fita crepe” da internet. • A interface de integração de banco de dados de Perl suporta diversos bancos de dados como Oracle, Sybase, Postgres e MySQL.

  5. Um Pouco Sobre Perl • Perl é capaz de fazer o interfaceamento através de bibliotecas C/C++ externas através de XS ou SWIG. • Perl pode trabalhar com HTML, XML e outras linguagens de marcação. • Perl permite programação procedural ou orientada a objetos. • Possui várias bibliotecas disponíveis através do CPAN.

  6. Um Pouco Sobre Perl • O slogan de Perl é: "Há mais de uma maneira de se fazer as coisas.“ ("There's more than one way to do it,") • Princípio de Perl: “Coisas comuns devem ser simples e fáceis.“ (common things should be easy and simple.)

  7. Algumas Aplicações de Perl • TWiki - Sistema Wiki de escrita de conteúdo colaborativo. • RT - Sistema de processamento de Tickets. • Apache Spam Assassin - Sistema extensível de filtro de Spam em email . • Dev::rip - Programa para cópias de DVD. • AWStats - "Advanced Web Statistics" (AWStats) é um poderoso sistema de análise de logs de servidores Web e de geração de estatísticas.

  8. Algumas Empresas que Usam Perl

  9. Algumas Empresas que Usam Perl

  10. Algumas Empresas que Usam Perl

  11. Sintaxe e Código • Strings: são apresentadas entre aspas, duplas ou simples. Exemplo: Programa Hello, World!: say “Hello, World!”;#exibe na tela a string Hello, World e #insere uma nova linha. Isto é equivalente a: say ‘Hello, World!’; #exibe na tela a string Hello, World e #insere uma nova linha.

  12. Sintaxe e Código • String entre aspas simples é considerada literalmente. • String entre aspas duplas é interpretada. • Exemplo: Print ‘Hello, \nWorld!’; #exibe Hello, World!\n na tela. Print “Hello, \nWorld!“; #exibe Hello, #World! na tela. • Perl também usa \n, \t e \\ como C.

  13. Sintaxe e CódigoOperadores Básicos • Operadores de atribuição: ++, --, +=, -=, /= e *=. São os mesmos de C. • Operadores de comparação: ==, != , <, >, <= e >=. São iguais aos de C. • Operadores matemáticos: +-*/. São iguais aos de C. • Operador my: declaração de variável. • Exemplo: my $hour; Também poderia fazer: my $i = 15;

  14. Sintaxe e CódigoOperadores Básicos • Perl não tem muita flexibilidade com relação a operadores de string. O único operador básico de string é o de concatenação: . Exemplo: my $a = "8"; # Observe as aspas. $a é uma string. my $b = $a + "1"; # "1" é uma string também. my $c = $a . "1"; # Mas $b e $c têm valores #diferentes!

  15. Sintaxe e CódigoOperadores Básicos • O sinal + é usado para somar números, enquanto que o . é usado para concatenar strings. • No exemplo anterior o valor de $b é 9, enquanto o valor de $c é 81. • Perl faz a conversão de maneira transparente. • Se forem somadas coisas que não são números, Perl fará o possível para convertê-las em números.

  16. Sintaxe e Código • Perl tem 3 tipos de variáveis: escalares, vetores e hashes. • Escalares: podem ser números, letras ou strings. O nome de cada variável escalar começa com $. Exemplo: $nome = “Henrique”; $idade = 23; $letra = “s”; • Não é necessário especificar para um escalar que está atribuída uma letra ou número, pois a conversão é automática.

  17. Sintaxe e Código • Guardando string em escalar: usando aspas duplas, pode-se colocar uma variável no meio da string que ela será interpretada. Exemplo: use feature ':5.10'; my $apple_count = 5; my $count_report = "There are$apple_countapples."; say "The report is:$count_report"; Na tela será exibido: The report is: There are 5 apples.

  18. Sintaxe e Código • Arrays: são conjuntos de escalares. • Seus nomes começam com @. A lista é definida com parênteses. Exemplo: my @lotto_numbers = (1, 2, 3, 4, 5, 6); my @months = ("July", "August", "September"); • O funcionamento de arrays em Perl é semelhante a C e outras linguagens. Exemplo: my @months = ("July", "August", "September"); say $months[0]; # Isto imprime "July". $months[2] = "March"; # September foi renomeado para March

  19. Sintaxe e Código • Se um valor não existe, ele é criado na atribuição. Exemplo: my @winter_months = ("December", "January"); $winter_months[2] = "February"; • Para saber o número de elementos em um array, basta atribuí-lo a um escalar: Exemplo: my @months = ("July", "August", "September"); my $month_count = @months; say $month_count; # This prints 3. my @autumn_months; # no elements my $autumn_count = @autumn_months; say $autumn_count; # this prints 0

  20. Sintaxe e Código • Hashes: são conjuntos de pares de dados nos quais um dos valores é uma chave e o outro é um valor qualquer. • Cada chave é única em todo o conjunto. Exemplos: dicionário, mapa, etc. • Os nomes das variáveis hash começam com %. Cada valor de hash é separado por vírgula. Exemplo: my %days_in_month = ( "July" => 31, "August" => 31, "September" => 30 );

  21. Sintaxe e Código • Para obter ou modificar um valor de hash deve-se referenciá-lo assim: $hashname{key}. Exemplo: say $days_in_month{September}; #imprime 30 na tela $days_in_month{February} = 29;

  22. Sintaxe e Código • Para saber quais chaves estão no hash, usa-se a função keys, que retorna uma lista (array) das chaves no hash. Exemplo: my @month_list = keys %days_in_summer; # O conteúdo de @month_list é ('July', 'September', 'August').

  23. Sintaxe e Código • Os valores do hash não são sempre retornados na mesma ordem. • Os valores de um array são sempre retornados na mesma ordem.

  24. Sintaxe e CódigoCondicionais • Perl possui dois operadores condicionais: if e unless. • if: Executa o bloco seguinte se a condição for verdadeira. Funciona igual a C. • unless: só executa o bloco seguinte se a condição testada for falsa, isto é retorna verdadeiro somente se a condição testada for falsa.

  25. Sintaxe e CódigoCondicionais • Exemplo: if ($year_according_to_computer == 1900) { say "Y2K has doomed us all! Everyone to the compound."; } unless ($bank_account > 0) { say "I'm broke!"; }

  26. Sintaxe e CódigoCondicionais • Tanto o if quanto o unless podem ser seguidos por else. O if também pode ser seguido por elsif e depois por else. Exemplo: if ($a == 5) { say "It's five!"; } elsif ($a == 6) { say "It's six!"; } else { say "It's something else."; }

  27. Sintaxe e CódigoCondicionais unless ($pie eq 'apple') { say "Ew, I don't like$pieflavored pie."; } else { say "Apple! My favorite!"; } • Perl faz uso de condições pós-fixadas, isto é condições de uma linha, que apresentam primeiro o que será executado e depois a condição. Exemplo: say "I'm leaving work early!" if $day eq 'Friday'; say "I'm burning the 7 pm oil" unless $day eq 'Friday';

  28. Sintaxe e CódigoLaços de Repetição • for: é semelhante a outras linguagens. Pode-se especificar os valores da sequência, um intervalo ou um array ou hash. Exemplo: for my $i (1, 2, 3, 4, 5) { say $i; }

  29. Sintaxe e CódigoLaços de Repetição my @one_to_ten = (1 .. 10); my $top_limit = 25; for my $i (@one_to_ten, 15, 20 .. $top_limit) { say $i; } for my $i (keys %month_has) { say "$ihas$month_has{$i} days."; } for my $marx ('Groucho', 'Harpo', 'Zeppo', 'Karl') { say "$marxis my favorite Marx brother."; }

  30. Sintaxe e CódigoLaços de Repetição • while: é igual a C, repete o bloco seguinte enquanto a condição é verdadeira, parando quando a condição for falsa. Exemplo: my $count = 0; while ($count != 3) { $count++; say "Counting up to $count..."; }

  31. Sintaxe e CódigoLaços de Repetição • until: é semelhante a Pascal, repete o bloco seguinte enquanto a condição é falsa, parando quando a condição for verdadeira. Exemplo: my $count = 0; until ($count == 0) { $count--; say "Counting down to $count..."; }

  32. Sintaxe e CódigoSub • Sub é o equivalente de Perl para o que em outras linguagens é uma função. Funciona assim: sub <nome da sub> { <corpo da sub> return <valor a ser retornado> } • O uso do return não é obrigatório. Neste caso, o valor retornado é o resultado da última sentença antes do fim da sub.

  33. Sintaxe e CódigoSub • O array @_ é usado para guardar os valores que são passados como parâmetros para a sub. • Através do @_ os valores passados como parâmetros são lidos e manipulados dentro da sub. Exemplo: sub multiply { my (@ops) = @_; return $ops[0] * $ops[1]; } for my $i (1 .. 10) { say "$isquared is ", multiply($i, $i); }

  34. Sintaxe e CódigoSub • Ao usar uma variável com o my dentro de uma sub, a variável é considerada variável local. • É possível atribuir valor a várias variáveis em uma única sentença. Exemplo: sub multiply { my ($left, $right) = @_; return $left * $right; }

  35. Expressões Regulares • Expressões regulares ou regex são o que Perl tem de melhor. • São as ferramentas mais poderosas que Perl tem no tratamento de strings. • São tão poderosas e complexas que é possível escrever um livro inteiro sobre elas. • É difícil encontrar outras linguagens que usam expressões regulares como Perl.

  36. Expressões Regulares • Ocorrência simples de expressão: são as expressões regulares mais simples. • Encontram uma ocorrência de string dentro de outra, não importa a posição, retornando verdadeiro. • São usadas com expressões condicionais. • O operador =~ é usado na verificação de strings com esse operador.

  37. Expressões Regulares Exemplo: my $user_location = "I see thirteen black cats under a ladder."; say "Eek, bad luck!" if $user_location =~ /thirteen/; • A string a ser buscada fica entre barras /<string>/. • Metacaracters: São caracteres ou sequências de caracteres que têm um significado especial.

  38. Expressões Regulares • O \n é um exemplo de metacaracter. • Os metacaracteres mais simples são o ^e o $. • ^indica início de string. • $ indica fim de string.

  39. Expressões Regulares • Exemplo: for my $line (<$urllist>) { print $line if $line =~ /^http:/ and $line =~ /html$/; # Se a linha começa em http: e termina em html, imprime } • Coringas: são metacaracters que substituem outros caracteres. • O mais genérico deles é o ponto .

  40. Expressões Regulares • Dentro de uma expressão, ele encontra qualquer outro caracter exceto o de nova linha. Exemplo: /Mr./ encontra qualquer expressão que comece com Mr e tenha outros caracteres depois.

  41. Expressões Regulares • Quantificadores de coringas: Indicam quantas vezes determinado caracter ou subespressão ocorre em uma string. • Os quantificadores usados em Perl são:+, ?, *. • +: encontra qualquer expressão que contenha uma ou mais ocorrências do caracter ou metacaracter anterior a ele. Exemplo: /ab+c/ retorna abc, abbc, abbbc, etc.

  42. Expressões Regulares • *: encontra qualquer expressão que contenha nenhuma ou mais ocorrências do caracter ou metacaracter anterior a ele. Exemplo: /ab*c/ retorna ac, abc, abbc, abbbc, etc. • ?: encontra qualquer expressão que contenha nenhuma ou uma ocorrência do caracter ou metacaracter anterior a ele. Exemplo: /ab?c/ retorna ac, abc.

  43. Expressões Regulares • Classes de Caracteres: são metacaracteres que encontram tipos específicos de caracteres. Exemplos: • \d: encontra um dígito simples. • \w: encontra um caracter de palavra simples (palavras que tenham letra, dígito ou underscore). • \s: encontra um caracter de espaço em branco (incluindo, \n \t e outros)

  44. Expressões Regulares • \D: encontra qualquer coisa que não seja dígito. • \W: encontra qualquer coisa que não seja palavra. • \S: encontra qualquer coisa que não seja caracter de espaço em branco. Exemplos de uso: • /^\s+/ :encontra qualquer string que comece com caracter de espaço em branco.

  45. Expressões Regulares • /\w+/ : encontra qualquer string que contenha pelo menos uma palavra. say "Not a phone number!" unless $phone =~ /\d\d\d-\d\d\d\d/; say "Not a phone number!" unless $phone =~ /\d{3}-\d{4}/; #versão alternativa para facilitar a leitura do código. • \d{3} : encontra exatamente 3 dígitos. • \d{4} : encontra exatamente 4 dígitos.

  46. Expressões Regulares • Definindo sua própria classe de caracters: os caracteres que devem ser encontrados pela sua expressão devem estar entre colchetes. Exemplo:[aeiou] retorna apenas vogais. /b[aeiou]g/ vai retornar bag,beg,big,bog ou bug. • O - dá uma sequência de caracteres. Exemplo: [a-f]:pega os caracters de a a f. • Combinação de classes de caracteres com quantificadores: Usados para encontrar mais de uma ocorrência dos caracteres buscados.

  47. Expressões Regulares Exemplo: say "This string contains at least two vowels in a row." if $string =~ /[aeiou]{2}/; • flags: alteram o comportamento padrão de uma regex. • Exemplo: i desliga o case-sensitive. my $greet = "Hey everybody, it's Bob and David!"; say "Hi, Bob!" if $greet =~ /bob/i;

  48. Expressões Regulares • flag \x: permite o uso de espaços em branco e comentários dentro de expressões regulares. Exemplo: my ($time, $hours, $minutes, $seconds) = $string =~ /( # capture entire match (\d{1,2}) # one or two digits for the hour :

  49. Expressões Regulares (\d{2}) # two digits for the minutes : (\d{2}) # two digits for the seconds ) /x; • Se quiser checar mais de uma coisa de uma vez, pode-se usar o caracter | para separar coisas diferentes.

  50. Expressões Regulares Exemplo: my @email_lines = ("Dear idiot:", "I hate you, you twit. You're a dope.", "I bet you mistreat your llama.", "Signed, Doug"); for my $check_line (@email_lines) { if ($check_line =~ /idiot|dope|twit|llama/) { say "Be careful! This line might contain something offensive:\n$check_line"; }

More Related