Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.53 KB | None | 0 0
  1. package regras;
  2.  
  3. use 5.010000;
  4. use strict;
  5. use warnings;
  6. use POSIX qw/strftime/;
  7.  
  8. require Exporter;
  9.  
  10. our @ISA = qw(Exporter);
  11.  
  12. our %EXPORT_TAGS = ( 'all' => [ qw(
  13.    
  14. ) ] );
  15.  
  16. our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
  17.  
  18. our @EXPORT = qw(
  19.         VerificarData
  20. );
  21.  
  22. our $VERSION = '0.01';
  23.  
  24.  
  25.  
  26. sub VerificarData {
  27.    
  28.     my @mail = @_; #cada indice eh uma palavra
  29.    
  30.     # Posicionar indices para comparar as duas datas
  31.     # @mail = dataDeEnvio_dataDeRecebimento
  32.     # dataDeEnvio: "Date: ...."
  33.     # dataDeRecebimento: "Date: ...."
  34.  
  35.     my $Data_email;
  36.     my $Data_atual;
  37.     my $indice = 0; # contador
  38.     my $resultado;
  39.  
  40.     # loop para encontrar o inicio da data de recebimento
  41.     foreach (@mail) {
  42.         my $palavra = $_;
  43.        
  44.         if ($palavra eq "Date:") {
  45.             $indice_dataEmail = $indice;
  46.         }
  47.         $indice++;
  48.     }
  49.    
  50.    
  51.    
  52.     $Data_atual= strftime('%d-%m-%Y',localtime);
  53.     #print $Data_atual;
  54.  
  55. ## FORMATAR DATA PARA COMPARAR
  56.    
  57.     # loop para comparar as datas de envio e recebimento
  58.     while ($mail[$indice_dataReceb]) {
  59.            
  60.         # Usando cmp:
  61.         #  0 - strings iguais
  62.         #  1 - primeira > segunda
  63.         # -1 - primeira < segunda
  64.        
  65.         $resultado = ($mail[$indice_dataEnv] cmp $mail[$indice_dataReceb]);
  66.        
  67.         if ($resultado == -1) {
  68.             return 0; # data de recebimento > data de envio: nao é spam
  69.         }
  70.         if ($resultado == 1) {
  71.             return 1; # data de recebimento < data de envio: numero de ocorrencias = 1
  72.         }
  73.         $indice_dataEnv++;
  74.         $indice_dataReceb++;
  75.     }
  76.     return 1; #se data de envio = data de recebimento, numero de ocorrencias = 1;
  77.     return ($count);
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement