Escolar Documentos
Profissional Documentos
Cultura Documentos
16 de junho de 2009
1 / 31
Conteúdo (hoje):
Apresentação de Perl
Origem da linguagem, principais caracterı́sticas
Executando programas em Perl
Tipos de variáveis
Escalares, arrays, hashes, ...
Loops e construções condicionais
For, while, foreach, ...
Exercı́cios
Expressões regulares
Matching, substituições, ...
E/S
Entrada padrão, arquivos
+ Exercı́cios
2 / 31
Para quinta-feira:
I Subrotinas
I CGI/Perl
I Perl em Bioinformática
3 / 31
Conteúdo
Apresentação de Perl
Origem da linguagem, principais caracterı́sticas
Executando programas em Perl
Tipos de variáveis
Escalares, arrays, hashes, ...
Loops e construções condicionais
For, while, foreach, ...
Exercı́cios
Expressões regulares
Matching, substituições, ...
E/S
Entrada padrão, arquivos
+ Exercı́cios
4 / 31
Resumo da história da linguagem
5 / 31
Principais caracterı́sticas
1
fonte: CPAN.org.
6 / 31
”Hello, World!”
#!/usr/bin/perl -w
use strict;
print "$mensagem\n";
7 / 31
Executando programas em Perl
8 / 31
Conteúdo
Apresentação de Perl
Origem da linguagem, principais caracterı́sticas
Executando programas em Perl
Tipos de variáveis
Escalares, arrays, hashes, ...
Loops e construções condicionais
For, while, foreach, ...
Exercı́cios
Expressões regulares
Matching, substituições, ...
E/S
Entrada padrão, arquivos
+ Exercı́cios
9 / 31
Escalares
10 / 31
Escalares
my $dia = 16;
my $mes = "junho";
my $pi_nao_tao_preciso = 3.14;
10 / 31
Escalares
my $dia = 16;
my $mes = "junho";
my $pi_nao_tao_preciso = 3.14;
10 / 31
Arrays
11 / 31
Mais sobre arrays
12 / 31
Mais sobre arrays
I “Modo escalar”:
if (@dias <= 7){
...
}
12 / 31
Mais um pouquinho sobre arrays
13 / 31
Mais um pouquinho sobre arrays
13 / 31
Hashes
14 / 31
Hashes
14 / 31
Hashes
14 / 31
Variáveis especiais
$_
@_
@ARGV
%ENV
15 / 31
Escopo das variáveis
16 / 31
Escopo das variáveis
I Todavia, isso cria uma variável global onde quer que a variável
seja declarada, o que é uma má prática de programação.
16 / 31
Escopo das variáveis
I Todavia, isso cria uma variável global onde quer que a variável
seja declarada, o que é uma má prática de programação.
16 / 31
Conteúdo
Apresentação de Perl
Origem da linguagem, principais caracterı́sticas
Executando programas em Perl
Tipos de variáveis
Escalares, arrays, hashes, ...
Loops e construções condicionais
For, while, foreach, ...
Exercı́cios
Expressões regulares
Matching, substituições, ...
E/S
Entrada padrão, arquivos
+ Exercı́cios
17 / 31
For e While
São muito parecidas com as suas equivalentes em C:
while( condicao ){
....
}
do{
....
}while( condicao );
18 / 31
Um exemplo interessante de while
while(<STDIN>){
# captura em $_ uma linha da entrada padrao
# e dentro do laco pode ser realizado
# algum processamento utilizando o $_
}
19 / 31
If, then, else,...
if ( condicao 1 ){
....
}
elsif ( condicao 2 ){
....
}
else{
....
}
20 / 31
Foreach
foreach (@meses) {
print "Mes: $_\n";
}
21 / 31
Exercı́cio (Learning Perl, 3.1)
while(<STDIN>){ .... }
chomp $_;
22 / 31
Conteúdo
Apresentação de Perl
Origem da linguagem, principais caracterı́sticas
Executando programas em Perl
Tipos de variáveis
Escalares, arrays, hashes, ...
Loops e construções condicionais
For, while, foreach, ...
Exercı́cios
Expressões regulares
Matching, substituições, ...
E/S
Entrada padrão, arquivos
+ Exercı́cios
23 / 31
Expressões regulares
24 / 31
Substituições
$tmp =~ s/foo/bar/;
# substitui o primeiro foo encontrado por bar em $tmp
$tmp =~ s/foo/bar/g;
# substitui TODOS os foo por bar em $tmp
25 / 31
Processamento (captura ou parsing)
if ($email =~ /([^@]+)@(.+)/) {
print "Nome do usuario: $1\n";
print "Nome do dominio: $2\n";
}
26 / 31
Conteúdo
Apresentação de Perl
Origem da linguagem, principais caracterı́sticas
Executando programas em Perl
Tipos de variáveis
Escalares, arrays, hashes, ...
Loops e construções condicionais
For, while, foreach, ...
Exercı́cios
Expressões regulares
Matching, substituições, ...
E/S
Entrada padrão, arquivos
+ Exercı́cios
27 / 31
Entrada padrão
while(<STDIN>){ .... }
my $uma_linha = <STDIN>;
my @varias_linhas = <STDIN>;
28 / 31
Arquivos
O básico para manipulação de arquivos é simples:
close(IN);
close(OUT);
close(APP);
29 / 31
+ Exercı́cio
Escreva um programinha Perl que abra um arquivo e imprima na
tela todas as siglas de matéria do DCC (Exemplo: MAC211,
mac5711), ao lado do seu número de ocorrências no arquivo.
Dicas:
open($arq, "<", "arq.txt") or die "blabla";
$variavel =~ /b(bl)a/;
# $1 == ’bl’, precedido de ’b’ e sucedido por ’a’
# Matchings:
# \s+ -> com um ou mais espacos
# \w -> com uma ou mais caracteres alfa-numericos
# \.+ -> com um ou mais qualquer coisa
# \d* -> com zero ou mais numeros
30 / 31
Referências
1. Perl.org. http://www.perl.org/.
Acesso em 10 de junho de 2009.
3. Livros da O’Reilly:
I Learning Perl.
I Programming Perl.
31 / 31