Introdução à linguagem Perl *

Documentos relacionados
Curso básico de JavaScript Aula 2

4. Constantes. Constantes pré-definidas

Introdução à linguagem Perl

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

PHP INTRODUÇÃO DELIMITADORES DE CÓDIGO EXTENSÃO DE ARQUIVOS

Algoritmos I Aula 13 Linguagem de Programação Java

Introdução à Lógica de Programação Utilizando Perl. Thiago Yukio Kikuchi Oliveira

Curso de PHP. FATEC - Jundiaí

Prof. Esp. Fabiano Taguchi PHP. Como surgiu o PHP? PHP

Apostila - Desenvolvimento web com PHP

Fundamentos de Lógica e Algoritmos. Aula 3.1 Introdução a Python. Prof. Dr. Bruno Moreno

Programação I A Linguagem C. Prof. Carlos Alberto

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

Algoritmos e Programação

Desenvolvido por: Juarez A. Muylaert Filho - Andréa T. Medeiros - Adriana S. Spallanzani -

Linguagem Perl. Uma abordagem prática para Pentesters. por Heitor Gouvêa

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

A sintaxe básica para definir uma função é: function nome_da_função([arg1, arg2, arg3]) { Comandos;... ; [return <valor de retorno>]; }

PROGRAMAÇÃO EM AMBIENTE WEB I

Fundamentos de Lógica e Algoritmos. Aula 3.1 Introdução a Programação. Prof. Dr. Bruno Moreno

Linguagem C: Introdução

Introdução a Programação Web com PHP

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

Uso do auto preenchimento para inserir dados

Introdução ao Javascript

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1

Algoritmos I Aula 12 Linguagem de Programação Java

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

Aula 4 Introdução ao C

Variáveis. Você pode ver as variáveis do sistema com os comandos printenv, env e set como mostra o exemplo abaixo:

JSP Prof. Daniela Pires. VARIAVEIS... 2 Tipos de Dados... 2 String Float Integer Boolean... 3

Criando Classes em PHP

Fundamentos de Programação em Python

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Programação Shell Script: como dominar seu terminal

Introdução à Computação - aulas 01 e 02 -

Exercitando a Programação com PHP

Python - Variáveis e expressões

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

3. Linguagem de Programação C

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Programação Orientada a Objetos para Redes de Computadores

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Ambiente de desenvolvimento

Exercícios: Vetores e Matrizes

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

Algoritmos II prof. Daniel Oliveira

Programação de Scripts Considerações Gerais. Adaptado do material do Prof. Mário Fiocco Júnior

Noções de algoritmos - Aula 1

Módulo 1 Conceitos Fundamentais

Português Estruturado

Apostila - Desenvolvimento web com PHP

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Linguagem C Princípios Básicos (parte 1)

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON

Minicurso de Linguagem de Programação Python.

Gerando um programa executável a partir de um módulo Python

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

INTRODUÇÃO A ALGORITMOS

Programação Aplicada a Redes de Computadores. Faculdade IESGO 2º Sem 2016

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

Transcrição:

Introdução à linguagem Perl * Instrutor: Er Galvão Abbott * O uso da imagem de um camelo associado à Perl é marca registrada da O'Reilly Media, Inc. Usado com permissão.

Convenções utilizadas neste documento: Código-fonte é representado na cor azul, inclusive quando em comentários do instrutor. Resultados comentados pelo instrutor são representados em verde para que haja distinção clara da demonstração sem a necessidade de outros recursos que podem gerar confusão com o aprendizado, como aspas e parênteses, por exemplo. Notas são representadas em um box destacado marcado com um bullet amarelo: Observações especiais são representadas por um número entre parênteses na cor laranja que deve ser consultado no final de cada seção. Representações do prompt do SO são feitas em azul e iniciam pelo sinal de maior (>). Programas completos são representados em um box destacado marcado com um bullet azul:

1. Um pouco de História: Perl é uma linguagem que foi criada em 1987 por Larry Wall. Suas principais influências residem nas linguagens sh, awk, C e sed. Perl se tornou extremamente popular nos primórdios da Internet, tornando-se a linguagem mais popular (juntamente com a linguagem C) para o desenvolvimento de scripts CGI. Estes scripts eram particularmente utilizados para o envio de informações digitadas pelos usuários em formulários colocados em websites. É comum confundir-se "Scripts Perl" com "Scripts CGI". CGI é meramente um padrão para a execução de aplicativos externos através de um servidor HTTP. Perl não é sinônimo de CGI! Hoje em dia a linguagem é utilizada especialmente em empresas de telefonia, na área de bioinformática e universidades, devido à sua caraterística mais famosa: ser extremamente poderosa em tarefas que envolvam a manipulação de strings. Perl também teve sua cota de "filhas". Entre as linguagens mais claramente influenciadas por ela encontram-se Ruby e PHP. 2. Estruturas de dados: Perl lida basicamente com 4 estruturas básicas de dados: Scalars ou variáveis Arrays ou matrizes Hashes ou matrizes associativas Constantes (que serão vistas mais adiante, quando vermos Pragmas) Detalharemos a seguir as características de cada uma destas estruturas:

2.1. Variáveis (Scalars): Scalars são o tipo de estrutura de dados mais simples. Elas podem representar um número (inteiro, de ponto flutuante, etc...), uma string de texto, o retorno de uma função, etc... Em Perl variáveis são representadas pelo sinal de $ (dólar) e, assim como em outras linguagens, deve seguir estas regras básicas de nomenclatura (1) : Nomes de variáveis sempre devem ser iniciados com uma letra. Só podem conter outras letras, números ou o caractere especial underscore (_), contanto que a regra acima seja respeitada. Exemplos de variáveis: $inteiro = 1; $flutuante = 0.5; $texto = Olá ; $texto2 = 'Olá'; No caso de strings o valor da variável deve ser contido entre aspas simples ou duplas, enquanto que valores numéricos devem ser declarados sem aspas. No caso de uma declaração do tipo: $teste = 5 ; Perl tratará este valor como uma string, e não como um número. A diferença entre o uso das aspas está na forma como Perl tratará a variável. No caso de aspas duplas, o interpretador da linguagem automaticamente converterá a variável para o seu valor (interpolação), enquanto que com aspas simples isto não ocorre. Veja os exemplos: $parte1 = 'Aprendendo'; $parte2 = a linguagem Perl ; $texto = $parte1 $parte2 ; $texto2 = '$parte1 $parte2'; $texto agora contém a string de texto Aprendendo a linguagem Perl, enquanto que $texto2 contém $parte1 $parte2 (1): As regras de nomenclatura para todas as estruturas de dados não se aplicam às variáveis especiais de Perl. Trataremos de algumas variáveis especiais mais a seguir.

2.2. Matrizes (Arrays): Arrays são um tipo de dado composto, ou seja, podem ser entendidos como um conjunto de Scalars concentrados em uma única denominação. Podem conter strings, números ou ambos e seus valores contidos em parênteses - são acessados por seu índice (posição dentro da matriz). Em Perl as matrizes são representadas pelo sinal de arroba (@) e seguem as mesmas regras de nomenclatura das variáveis. Exemplos de matrizes: @tipos_de_dados = ('Scalars', 'Arrays', 'Hashes'); @numeros_impares = (1, 3, 5); @dados_diversos = ('Porto Alegre', 25.30, 3, 'Teste', 'São Leopoldo', 123.25, 'Unisinos'); Para se acessar apenas um elemento de uma matriz, deve se utilizar o nome da matriz no formato Scalar, seguido por sua posição entre colchetes ([]). Veja os exemplos a seguir, onde misturaremos variáveis e matrizes para que possamos atribuir a uma variável o valor de um dos elementos de uma matriz: $primeiro_tipo_de_dado = $tipos_de_dados[0]; $segundo_numero_impar = $numeros_impares[1]; $terceiro_dado_diverso = $dados_diversos[2]; Ao contrário do uso coloquial, a primeira posição de uma matriz em Perl é sempre representada pelo índice zero (0). Nos exemplos citados a variável $primeiro_tipo_de_dado conterá como valor a string Scalars, enquanto que a variável $segundo_numero_impar conterá o número 3 e a variável $terceiro_dado_diverso por sua vez terá como valor o número 3. É possível, inclusive, concatenar (juntar) valores de matrizes diferentes, mas trataremos isto mais adiante.

Entendendo melhor as matrizes: Para que não haja dúvidas veja como seria a representação das matrizes utilizadas nestes items nas tabelas abaixo: Matriz tipos_de_dados Índice 0 1 2 Valor Scalars Arrays Hashes Table 1 Representação da matriz tipos_de_dados Matriz numeros_impares Índice 0 1 2 Valor 1 3 5 Table 2 Representação da matriz numeros_impares Matriz dados_diversos Índice 0 1 2 3 4 5 6 Valor Porto Alegre 25.30 3 Teste São Leopoldo 123.25 Unisinos Table 3 Representação da matriz dados_diversos Arrays não são interpolados da mesma forma que as variáveis. Veja os exemplos: $incorreto1 = "$dados_diversos[0]"; $incorreto2 = '$dados_diversos[0]'; $correto = $dados_diversos[0]; Nos exemplos acima tanto $incorreto1 como $incorreto2 conterá como valor a string $dados_diversos[0], enquanto que $correto conterá a string Porto Alegre.

2.3. Matrizes Associativas (Hashes) Hashes são tipos de dados compostos como as matrizes, com a diferença básica de que seus índices devem ser explicitamente nomeados. Ao contrário dos arrays, hashes não são implicitamente ordenados, ou seja não existe o conceito de primeiro ou último elemento. Veremos mais adiante como ordenar um hash, seja ordenação por índice ou por valor. Em Perl as matrizes associativas são representadas pelo sinal de porcentagem (%) e (sim, você adivinhou) seguem as mesmas regras de nomenclatura das variáveis. Exemplos de Matrizes Associativas: %dias_da_semana = ( Dom => Domingo, Seg => Segunda, Ter => Terça, Qua => Quarta, Qui => Quinta, Sex => Sexta, Sáb => Sábado ); %numeros = ( 1 => inteiro, 0.25 => ponto flutuante, 3 => ímpar ); %drive_c = ( label, meu_drive, tamanho(kb), 40000000); As duas formas de notação de hashes são corretas, embora a notação por associação através do operador => seja preferida pela clareza e legibilidade de código. Sendo assim, a notação de nosso terceiro hash ficaria na seguinte forma: %drive_c = ( ); label => meu_drive, tamanho(kb) => 40000000 Para se acessar apenas um elemento de uma matriz associativa, deve se utilizar o nome da matriz no formato Scalar, seguido pelo seu índice entre chaves ({}).

Veja os exemplos a seguir, onde misturaremos variáveis e matrizes associativas para que possamos atribuir a uma variável o valor de um dos elementos de uma matriz associativa: $festa = $dias_da_semana{ Sáb }; $ressaca = $dias_da_semana{ Dom }; $checagem_inteiro = $numeros{1}; $tamanho = $drive_c{ tamanho(kb) }; Nos exemplos citados a variável $festa conterá como valor a string Sábado, enquanto que a variável $ressaca conterá a string Domingo, $checagem_inteiro conterá a string inteiro e a variável $tamanho por sua vez terá como valor o número 40000000. Entendendo melhor as matrizes associativas: Para que não haja dúvidas veja como seria a representação das matrizes associativas utilizadas nestes items nas tabelas abaixo: Matriz dias_da_semana Índice Dom Seg Ter Qua Qui Sex Sáb Valor Domingo Segunda Terça Quarta Quinta Sexta Sábado Table 4 Representação da matriz dias_da_semana Matriz numeros Índice 1 0.25 3 Valor inteiro ponto flutuante ímpar Table 5 Representação da matriz numeros Matriz drive_c Índice label tamanho(kb) Valor meu_drive 40000000 Table 6 Representação da matriz drive_c

3. Executando um programa Perl: Os programas Perl geralmente possuem a extensão.pl e esta será a extensão utilizada neste curso. É prática comum em scripts cgi a utilização da extensão.cgi e normalmente o servidor web está automaticamente pré-configurado para aceitar tanto uma quanto a outra. São necessárias para a execução de um programa Perl: a) Uma máquina com o interpretador da linguagem instalado. b) Apenas para máquinas linux: a primeira linha do programa deve apontar para o caminho onde o interpretador foi instalado. Esta primeira linha é conhecida como shebang. A shebang tem o seguinte formato: #!/caminho/para/perl Na maioria das instalações linux a shebang tem a seguinte forma: #!/usr/bin/perl Em máquinas linux a ausência da shebang ocasionará um erro, enquanto que em máquinas windows a presença ou ausência desta linha não faz diferença para a execução do programa. Sendo assim, por questões de portabilidade, é prática comum sempre utilizar a shebang. Para executar um programa Perl, digite no prompt do SO: >perl nome_do_programa.pl Uma variação comum da shebang é utilizar o parâmetro -w. Este parâmetro habilita os warnings, avisos sobre possíveis erros no código-fonte do programa: #!/usr/bin/perl -w Isto seria o equivalente a executarmos o nosso programa da seguinte forma: >perl -w nome_do_programa.pl Veremos mais sobre warnings na seção de pragmas. Em 99% dos casos o interpretador Perl já está presente no PATH do SO, mas caso você encontre uma exceção, deverá usar o caminho completo, como por exemplo: >/usr/local/bin/perl nome_do_programa.pl

4. Comandos mais comuns: A seguir veremos alguns dos comandos mais utilizados na linguagem Perl. 4.1.Comandos de saída de dados: print FILEHANDLE LIST ou print LIST print é o comando Perl para saída de dados, seja para a tela ou para gravação em um arquivo. Vejamos agora como fica o programa-exemplo mais velho do mundo em Perl: 1 2 3 4 5 Programa 1: Olá mundo! #!/usr/bin/perl $texto = 'Olá mundo!'; print "\n$texto\n"; 5. Operadores: 5.1.Auto-incremento e auto-decremento: São os operadores que permitem ao programador somar ou subtrair ao valor de uma variável. São eles: ++ -- Dependendo de sua posição em relação à variável a soma ou subtração é feita antes ou depois do retorno do valor da mesma. Veja os exemplos abaixo: