spln2016:dirio3
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| spln2016:dirio3 [2016/03/04 19:38] – ambs | spln2016:dirio3 [2016/03/09 16:45] (current) – ambs | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== SPLN ====== | ====== SPLN ====== | ||
| - | ==== Diário de Bordo - Aula 3 - 2016-03-01 ==== | + | ==== Diário de Bordo - Aula 3 - 2016-02-29 ==== |
| === Sumário === | === Sumário === | ||
| Line 41: | Line 41: | ||
| $chmod +x < | $chmod +x < | ||
| - | Expressões Regulares | + | **Expressões Regulares |
| Para fazer match do caracter espaço, utiliza-se o seguinte : | Para fazer match do caracter espaço, utiliza-se o seguinte : | ||
| + | |||
| \s é equivalente a [ \t\n] | \s é equivalente a [ \t\n] | ||
| \S é equivalente a [^ \t\n] | \S é equivalente a [^ \t\n] | ||
| Utilização do Default input and pattern-searching space: | Utilização do Default input and pattern-searching space: | ||
| + | |||
| while( $_ =~ /\S/){...} | while( $_ =~ /\S/){...} | ||
| while( /\S/ ){...} | while( /\S/ ){...} | ||
| + | |||
| Esta expressão regular apanha todas as linha nao vazias. | Esta expressão regular apanha todas as linha nao vazias. | ||
| Para aceder a campos da expressão regular que fez match utilizamos a seguinte sintax: | Para aceder a campos da expressão regular que fez match utilizamos a seguinte sintax: | ||
| + | |||
| / | / | ||
| + | |||
| onde as expressões que estão dentro de parênteses curvos são acessiveis através de das variáveis $1..$9. | onde as expressões que estão dentro de parênteses curvos são acessiveis através de das variáveis $1..$9. | ||
| + | **Operadores sobre vários tipos de dados** | ||
| - | * Operadores sobre vários tipos de dados | + | Consultar Capiulo 14. do Quick Reference Guide fornecido. |
| - | Consultar Capiulo 14. do Quick Reference Guide fornecido. | + | |
| - | ** Arrays Associativos | + | |
| %a - array associativo | %a - array associativo | ||
| Line 66: | Line 72: | ||
| $delete($a{v3}) | $delete($a{v3}) | ||
| - | ** Vetores | + | |
| - | @l - vetor | + | |
| - | unshift(@l, | + | |
| - | elem = shift(@l) - retira elemento do inicio do vetor | + | |
| - | push(@l, elem) - insere elemento no final do vetor | + | |
| - | elem = pop(@l) - retira elemento do final do vetor | + | |
| - | $l[3] - accesso para o terceiro elemento da lista | + | |
| - | $l+0 = comprimento da lista | + | |
| - | @l = split(/ | + | |
| - | join(',', | + | |
| - | join(',', | + | |
| - | + | ||
| - | ** Apontadores | + | @l - vetor |
| - | \@l - devolve apontador para o vetor | + | |
| - | \%a - devolve apontador para array associativo | + | elem = shift(@l) |
| - | \&$f - apontador | + | |
| - | @x = (1,[3,4]) , $x[1][1] = 3 | + | elem = pop(@l) - retira elemento do final do vetor |
| + | | ||
| + | $l+0 = comprimento da lista | ||
| + | | ||
| + | join(',', | ||
| + | join(',', | ||
| + | * Referências | ||
| - | * Funções Anonimas | + | \@l - devolve referência para o vetor |
| + | \%a - devolve referêcia para array associativo | ||
| + | \&$f - referência para função | ||
| + | @x = (1,[3,4]) , $x[1][1] = 3 | ||
| - | $sub{ ... } - função anonima | + | * Funções Anonimas |
| + | $x = sub{ ... } - função anonima | ||
| - | * Perl Open() | + | |
| open(F,"<","/ | open(F,"<","/ | ||
| - | + | ||
| + | * Open de IPC (inter process communication: | ||
| # | # | ||
| Line 100: | Line 107: | ||
| while (<>) { | while (<>) { | ||
| print | print | ||
| - | |||
| } | } | ||
| close (F); | close (F); | ||
| Line 112: | Line 118: | ||
| # | # | ||
| - | open(F, " | + | |
| - | while (<F>) { | + | while (<F>) { |
| - | print "$. $_"; | + | print "$. $_"; |
| + | } | ||
| + | close (F); | ||
| - | } | + | com open(F," |
| - | close | + | |
| - | open(F," | + | |
| - | + | ||
| - | * Bash script | + | |
| for a in {1..20000}; do echo $RANDOM >$a.txt; done - cria 20000 ficheiros | for a in {1..20000}; do echo $RANDOM >$a.txt; done - cria 20000 ficheiros | ||
| - | *Perl scripts | + | * Perl scripts |
| - | * imprime linhas repetidas, ignora linhas vazias | + | |
| + | * imprime linhas repetidas, ignora linhas vazias | ||
| # | # | ||
| + | | ||
| use warnings; | use warnings; | ||
| use strict; | use strict; | ||
| use utf8::all; | use utf8::all; | ||
| + | | ||
| my %hash; #array associado | my %hash; #array associado | ||
| while (<>) { | while (<>) { | ||
| Line 144: | Line 151: | ||
| *Detetar ficheiros duplicados numa diretoria fornecida como argumento. | *Detetar ficheiros duplicados numa diretoria fornecida como argumento. | ||
| + | |||
| # | # | ||
| + | | ||
| use warnings; | use warnings; | ||
| use strict; | use strict; | ||
| use utf8::all; | use utf8::all; | ||
| + | | ||
| my %hash; #array associativo | my %hash; #array associativo | ||
| my $arg =join ( " ", | my $arg =join ( " ", | ||
spln2016/dirio3.1457120322.txt.gz · Last modified: 2016/03/04 19:38 by ambs