User Tools

Site Tools


spln2016:dirio3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
spln2016:dirio3 [2016/03/04 20:38] ambsspln2016:dirio3 [2016/03/04 20:45] ambs
Line 41: Line 41:
  $chmod +x <filename>  $chmod +x <filename>
  
-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:
 +
  /(\w+)\s+(.+)/  /(\w+)\s+(.+)/
 +
 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+  * Arrays Associativos
  
  %a - array associativo   %a - array associativo 
Line 66: Line 72:
  $delete($a{v3})  $delete($a{v3})
  
-** Vetores +  * Vetores
- @l - vetor +
- unshift(@l, elem ) - insere elemento no inicio do vetor +
- 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(/a/,"batata") - retorna lista com elementos b,t,t +
- join(',',1..10) - retorna string "1,2,3,4,5,6,7,8,9,10" +
- join(',',@l) - retorna string "$l[0],$l[1],....$l[n]" +
- +
  
-** Apontadores +        @l - vetor 
- \@l - devolve apontador para o vetor +        unshift(@l, elem ) insere elemento no inicio do vetor 
- \%a devolve apontador para array associativo +        elem = shift(@l) retira elemento do inicio do vetor 
- \&$apontador para função +        push(@l, elem) - insere elemento no final do vetor  
- @= (1,[3,4]) ,  $x[1][1= 3+        elem = pop(@l) - retira elemento do final do vetor 
 +        $l[3] accesso para o terceiro elemento da lista 
 +        $l+0 = comprimento da lista 
 +        @split(/a/,"batata") - retorna lista com elementos b,t,t 
 +        join(',',1..10) - retorna string "1,2,3,4,5,6,7,8,9,10" 
 +        join(',',@l- retorna string "$l[0],$l[1],....$l[n]"
  
 +  * 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()+  * Perl Open()
  
  open(F,"<","/var/log/messages") - abre ficheiro /var/log/messages para leitura  open(F,"<","/var/log/messages") - abre ficheiro /var/log/messages para leitura
- + 
 +  * Open de IPC (inter process communication: pipes) 
  #!/usr/bin/perl  #!/usr/bin/perl
  
Line 100: Line 107:
  while (<>) {  while (<>) {
  print  "$. $_";   print  "$. $_"; 
- 
  }  }
  close (F);  close (F);
Line 112: Line 118:
  #!/usr/bin/perl  #!/usr/bin/perl
  
- open(F, "-|", "ls") or die("Cant open file\n"); +        open(F, "-|", "ls") or die("Cant open file\n"); 
- while (<F>) { +        while (<F>) { 
- print  "$. $_";+            print  "$. $_"
 +        } 
 +        close (F);
  
-+com open(F,"|-","ls"- Estamos a criar um Pipe, O processo 1 pode escrever informação em pipe para o processo 2, usando Descripror 'F'
- close (F);+
  
- open(F,"|-","ls") - Estamos a criar um Pipe, O processo 1 pode escrever informação em pipe para o processo 2, usando Descripror 'F' +  * Bash script
- +
-* 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 
  #!/usr/bin/perl  #!/usr/bin/perl
 +        
  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.
 +
  #!/usr/bin/perl  #!/usr/bin/perl
 +        
  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 ( " ",  map{-d $_?"$_/*":$_}@ARGV);  my $arg =join ( " ",  map{-d $_?"$_/*":$_}@ARGV);
spln2016/dirio3.txt · Last modified: 2016/03/09 17:45 by ambs