click below
click below
Normal Size Small Size show me how
Linguagem Perl
Principais Funcionalidades da Linguagem Perl
Question | Answer |
---|---|
1 de Janeiro, 1987 | Surgimento da Linguagem Perl com o Perl 1.000 |
5 de Junho, 1988 | Lançamento do Perl 2.000 A nova versão tinha suporte à chamada recursiva de sub-rotinas, operadores 'wait' e 'sort', além de melhorias no funcionamento de expressões regulares. |
18 de Outubro, 1989 | Lançamento do Perl 3.000 Na versão 3.000 era possível trabalhar com data binária corretamente, tinha funções de 'pack' e 'unpack' em estruturas binárias. Sub-rotinas poderiam ser passadas por referência, e outras diversas funções foram adicionadas. |
1 de Janeiro, 1991 | Publicação do livro Programming Perl A primeira edição de Programming Perl por Larry Wall e Randal Schwartz é publicada por O'Reilly & Associates. |
21 de Março, 1991 — 1 de Janeiro, 1993 | Lançamentos de versões do Perl 4, e do MacPerl O Perl 4.000 foi acompanhado por uma série de lançamentos de manutenção, culminando no Perl 4.036. Durante esse período houve o lançamento do MacPerl 4.0.2, para Macintosh, progredindo até o MacPerl 4.1.0. |
18 de Setembro, 1994 | Lançamento do Perl 5.000 O muito antecipado Perl 5.000 foi revelado. Houve uma completa re-escrita da linguagem. Dentre suas novas características pode-se notar a inclusão de objetos, referências e módulos. |
26 de Setembro, 1995 | CPAN (Comprehensive Perl Archive Network) Como consequência do suporte a módulos, houve o estabelecimento da CPAN como um repositório para módulos de Perl. Hoje abrigando mais de 24 mil módulos para várias finalidades. |
5 de Maio, 1997 — 22 de Junho, 1998 | Lançamentos do Perl 5.004 e 5.005 A versão 5.004 entre outras coisas trouxe a inclusão do módulo CGI.pm, enquanto a versão 5.005 incluiu mais melhoras no funcionamento do regex, além do suporte a novos sistemas operacionais. |
1 de Janeiro, 2000 | Início do planejamento do Perl 6 Larry Wall fez um pedido de sugestões à comunidade. Tal processo gerou um conjunto de documentos (361RFC) que foram então utilizados para guiar o desenvolvimento do Perl 6. |
22 de Março, 2000 | Lançamento do Perl 5.6 Nessa versão houve a inclusão de suporte a sistemas 64-bit e a arquivos maiores, além da inclusão da palavra chave "our". |
1 de Janeiro, 2001 | Surgimento dos documentos 'Apocalypses' do Perl 6 Tais documentos resumiam os pedidos de sugestões à comunidade, além de apresentarem o design da próxima geração de Perl. |
8 de Junho, 2002 | Lançamento do Perl 5.8 O Perl 5.8, entre outras coisas, melhorou o suporte a unicode, adicionou uma nova implementação de thread, e adicionou mais módulos. |
1 de Janeiro, 2004 | Documentos 'Synopses' em construção Tais documentos originalmente resumiriam os documentos 'Apocalypses', no entanto acabaram se tornando a especificação da linguagem do Perl 6. |
1 de Fevereiro, 2005 — 1 de Janeiro, 2006 | Desenvolvimento do Pugs Audrey Tang começou a desenvolver o Pugs, interpretador para o Perl 6, escrito na linguagem de programação Haskell. No entanto, em 2006 o desenvolvimento acabou sendo deixado de lado por tempo indefinido. |
1 de Janeiro, 2007 | Início da construção do Rakudo Perl Uma outra implementação de Perl 6 surgiu, conhecida como Rakudo Perl. Continuou obtendo atualizações mensais e hoje em dia é a mais completa implementação de Perl 6. |
18 de Dezembro, 2007 | Lançamento do Perl 5.10.0 A versão 5.10.0 foi lançada no aniversário de 20 anos da primeira versão de Perl. Incluia, entre outras coisas, declarações com switch e atualizações de expressões regulares. |
2 de Setembro, 2009 | Lançamento do Perl 5.11.0 Com a nova versão surgiu a proposta de atualizações mensais sobre a mesma, com o intuito de evitar bugs e melhorar a velocidade do desenvolvimento, também melhorando o planejamento em longo prazo do Perl 5. |
12 de Abril, 2010 | Lançamento do Perl 5.12.0 Em 2010 houve o lançamento da versão 5.12, que trouxe o operador Yada Yada, estruturas implícitas, suporte a DTrace e Unicode 5.2. |
4 de Maio, 2011 — 20 de Maio, 2012 | Lançamento das versões 5.14 e 5.16 Nos anos de 2011 e 2012 as versões 5.14 e 5.16 foram desenvolvidas, esta última tendo como característica principal a possibilidade de emular qualquer versão anterior do Perl, rodando scripts mais antigos que seriam n |
Significado | Perl significa "Practical Extraction and Report Language" |
Paradigma | Multiparadigma: funcional, imperativo, Orientação a objetos, reflexivo, estruturado, genérico |
Estilo de tipagem | Dinâmica |
Compilada ou Interpretada | Interpretada |
Tipos de dados | Escalar, Vetor (array), Hash (vetor associativo), Handle de um arquivo e Sub-rotinas. |
Declaração Escalar | $num $joe $pointer |
Declaração Array | @v @list @variable |
Declaração Hash | %people %x %this_is_a_hash |
Programando em Perl | #!/usr/bin/perl print "Olá, Mundo!\n"; |
Comentário | Comentários podem ser inseridos no programa com o simbolo #, e tudo que estiver depois do # até o final da linha é ignorado (com exceção da primeira linha) a unica forma de realizar comentários por varias linhas é usando um # por linha. |
Operação de soma | $a = 1 + 2; # Soma 1 em 2 e armazena o resultado em $a |
Operação de subtração | $a = 3 - 4; # Subtrai 4 de 3 e armazena o resultado em $a |
Operação de Multiplicação | $a = 5 * 6; # Multiplica 5 por 6 |
Operação de Divisão | $a = 7 / 8; # Divide 7 por 8 e obtem 0,875 |
Operação de Potenciação | $a = 9 ** 10; # Eleva nove a décima potência |
Operação de Resto | $a = 5 % 2; # Armazena em $a o resto da divisão de 5 por 2 |
Operação de Incremento | ++$a; # Inclementa $a e depois retorna $a++; # Retorna $a e depois inclementa |
Operação de Decremento | --$a; # Decrementa $a e depois retorna $a--; # Retorna $a e depois decrementa |
Operações de Strings | $a = $b . $c; # Concatena $b com $c $a = $b x $c; # $b é repetida $c vezes |
Atribuição | $a = $b; # Coloca em $a o conteúdo de $b $a += $b; # Soma o valor de $b ao valor de $a $a -= $b; # Subtrai o valor de $b do valor de $a $a .= $b; # Concatena $b a $a |
Para adicionar um novo elemento no array | push(@frutas, "abacaxi"); |
Transforma uma variável array em uma variável escalar | $f = @frutas; |
Escopo das variáveis | $var = "value"; # Global my $var = "value"; # Local |
Condicional | if ( condition ) { ... } elsif ( other condition ) { ... } else { ... } |
Versão negada | unless ( condition ) { ... } |
While | while ( condition ) { ... } |
versão negada | until ( condition ) { ... } |
For | for ($i = 0; $i <= $max; $i++) { ... } |
Foreach | foreach my $key (keys %hash) { print "The value of $key is $hash{$key}\n"; } |
Operadores Numericos | == Igualdade ! = Desigualdade < Menor que > Maior que < = Menor ou igual > = Maior ou igual |
Operadores de String | eq Igualdade ne Desigualdade lt Menor que gt Maior que le Menor ou igual ge Maior ou igual |
Operadores Lógicos | && E | | Ou ! Não |
Operadores Diversos | = Atribuição . Concatenação x Multiplicação .. Faixa de operador ( cria uma lista de números ) |
Expressões regulares simples | if (/foo/) { ... } # Verdadeiro se $_ contém "foo" if ($a =~ /foo/) { ... } # Verdadeiro se $a contém "foo" |
Sub-Rotina | sub logger { my $logmessage = shift; open my $logfile, ">>", "my.log" or die "não foi possível abrir my.log: $!"; print $logfile $logmessage; } |