PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e...

57
PERL Practical Extraction and Report Language

Transcript of PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e...

Page 1: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

PERL

Practical Extraction and Report Language

Page 2: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 3: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 4: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 5: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 6: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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

Page 7: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 10: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Algumas Empresas que Usam Perl

Page 11: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 12: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 13: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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;

Page 14: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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!

Page 15: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 16: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 17: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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_count apples.";

say "The report is: $count_report";

Na tela será exibido:

The report is: There are 5 apples.

Page 18: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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

Page 19: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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 elementsmy $autumn_count = @autumn_months;say $autumn_count; # this prints 0

Page 20: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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

Page 21: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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;

Page 22: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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

Page 23: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 24: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 25: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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!";

}

Page 26: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.";

}

Page 27: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Sintaxe e CódigoCondicionais

unless ($pie eq 'apple') {say "Ew, I don't like $pie flavored 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';

Page 28: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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;

}

Page 29: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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 "$i has $month_has{$i} days.";}for my $marx ('Groucho', 'Harpo', 'Zeppo', 'Karl') {

say "$marx is my favorite Marx brother.";}

Page 30: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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...";

}

Page 31: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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...";

}

Page 32: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 33: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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 "$i squared is ", multiply($i, $i);}

Page 34: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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;

}

Page 35: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 36: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 37: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 38: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 39: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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 .

Page 40: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 41: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 42: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 43: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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)

Page 44: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 45: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 46: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 47: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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;

Page 48: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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

:

Page 49: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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.

Page 50: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

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"; }

Page 51: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Expressões Regulares

A expressão /idiot|dope|twit|llama/ retorna verdadeiro se "idiot," "dope," "twit" or "llama" estiver presente em qualquer lugar da string testada.

• Subespressão: permite que a string onde houve ocorrência da subexpressão seja armazenada na variável especial $1.

• Subexpressões são dadas entre parênteses.

Page 52: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Expressões Regulares

Exemplo:for my $check_line (@email_lines) { if ($check_line =~ /(idiot|dope|twit|llama)/) { say "Be careful! This line contains the offensive word

'$1':\n$check_line"; }

• Se sua expressão regular contém mais de uma expressão, elas são armazenadas em variáveis como $1, $2, $3, etc.

Page 53: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Expressões Regulares

Exemplo:my $name = 'Wall, Larry';

$name =~ /(\w+), (\w+)/;

# $1 contains last name, $2 contains first name

$name = "$2 $1";

# $name now contains "Larry Wall"

Page 54: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

99 Bottles of Beer

Primeira versão

Page 55: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Versão Insana ''=~( '(?{' .('`' |'%') .('[' ^'-')

.('`' |'!') .('`' |',') .'"'. '\\$'

.'==' .('[' ^'+') .('`' |'/') .('['

^'+') .'||' .(';' &'=') .(';' &'=')

.';-' .'-'. '\\$' .'=;' .('[' ^'(')

.('[' ^'.') .('`' |'"') .('!' ^'+')

.'_\\{' .'(\\$' .';=('. '\\$=|' ."\|".( '`'^'.'

).(('`')| '/').').' .'\\"'.+( '{'^'['). ('`'|'"') .('`'|'/'

).('['^'/') .('['^'/'). ('`'|',').( '`'|('%')). '\\".\\"'.( '['^('(')).

'\\"'.('['^ '#').'!!--' .'\\$=.\\"' .('{'^'['). ('`'|'/').( '`'|"\&").(

'{'^"\[").( '`'|"\"").( '`'|"\%").( '`'|"\%").( '['^(')')). '\\").\\"'.

('{'^'[').( '`'|"\/").( '`'|"\.").( '{'^"\[").( '['^"\/").( '`'|"\(").(

'`'|"\%").( '{'^"\[").( '['^"\,").( '`'|"\!").( '`'|"\,").( '`'|(',')).

'\\"\\}'.+( '['^"\+").( '['^"\)").( '`'|"\)").( '`'|"\.").( '['^('/')).

'+_,\\",'.( '{'^('[')). ('\\$;!').( '!'^"\+").( '{'^"\/").( '`'|"\!").(

'`'|"\+").( '`'|"\%").( '{'^"\[").( '`'|"\/").( '`'|"\.").( '`'|"\%").(

'{'^"\[").( '`'|"\$").( '`'|"\/").( '['^"\,").( '`'|('.')). ','.(('{')^

'[').("\["^ '+').("\`"| '!').("\["^ '(').("\["^ '(').("\{"^ '[').("\`"|

')').("\["^ '/').("\{"^ '[').("\`"| '!').("\["^ ')').("\`"| '/').("\["^

'.').("\`"| '.').("\`"| '$')."\,".( '!'^('+')). '\\",_,\\"' .'!'.("\!"^

'+').("\!"^ '+').'\\"'. ('['^',').( '`'|"\(").( '`'|"\)").( '`'|"\,").(

'`'|('%')). '++\\$="})' );$:=('.')^ '~';$~='@'| '(';$^=')'^ '[';$/='`';

Page 56: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Segunda VersãoVersão Padrão

$nBottles = $ARGV[0];$nBottles = 100 if $nBottles eq ‘’ || $nBottles < 0;

foreach (reverse(1 .. $nBottles)) { $s = ($_ == 1) ? “” : “s”; $oneLessS = ($_ == 2) ? “” : “s”; print "\n$_ bottle$s of beer on the wall,\n"; print "$_ bottle$s of beer,\n"; print "Take one down, pass it around,\n"; print $_ - 1, “ bottle$oneLessS of beer on the wall\n";}print "\n*burp*\n";

Page 57: PERL Practical Extraction and Report Language. Um Pouco Sobre Perl Perl é uma linguagem poderosa e adaptável a diversas situações. Sua primeira versão.

Referências

• http://www.perl.com/pub/a/2008/04/23/a-beginners-introduction-to-perl-510.html

• http://www.wellho.net/mouth/969_Perl-and-.html• http://www.perlmonks.org/?node_id=641994• http://perl.about.com/od/perltutorials/a/foreachloop.htm• http://perldoc.perl.org/perlvar.html• http://news.oreilly.com/2008/06/a-beginners-introduction-

to-pe.html• http://rio.pm.org/quem_usa.pl#empresas• http://pt.wikipedia.org/wiki/

Perl#M.C3.B3dulos_e_frameworks