Aprenda Perl

  • Página Inicial
  • Contato!
  • Tudo sobre Perl Parte 1!
  • Tudo sobre Perl Parte 2!
  • Tudo sobre Perl Parte 2

    Datas em Perl

    Para manipular datas em Perl, precisamos importar o POSIX qw(strftime), e usar máscaras para as datas, assim:

    
    use POSIX qw(strftime);
    
    my $data = strftime "%d/%m/%Y", localtime; # Dia, mês e ano.
    my $hora = strftime "%H:%M:%S", localtime; # Hora, minuto e segundo.
    my $sem = strftime "%w", localtime; # Pega a posição da semana contada a partir de Domingo, do zero.
    
    print "$data\n";
    print "$hora\n";
    print "$sem\n";
    
    

    Podemos até formatar a semana usando um array, ficando dessa forma:

    
    use POSIX qw(strftime);
    
    my $data = strftime "%d/%m/%Y", localtime;
    my $hora = strftime "%H:%M:%S", localtime;
    my $sem = strftime "%w", localtime;
    
    my @semana = ("Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado");
    
    print "$data\n";
    print "$hora\n";
    print "$semana[$sem]\n";
    
    

    Funções Aritméticas

    Também temos funções aritméticas em Perl, descritas abaixo:

    A função abs() é para pegar o valor absoluto de uma variável (valores sem traço negativo).

    A função sqrt() é para mostrar a raiz quadrada.

    A função int() é para pegar a parte inteira de um número (não confundir com arredondamento).

    A função rand() é para gerar um número aleatório.

    Veja todos os códigos acima funcionando:

    
    my $n1 = 5;
    my $n2 = 10;
    my $real = 4.5;
    
    printf "Número absoluto de %d: %d.\n", $n1, abs($n1);
    printf "Raiz quadrada de %d: %.4f.\n", $n1, sqrt($n1);
    printf "Parte inteira de %.1f: %d.\n", $real, int($real);
    printf "Número aleatório entre %d e %d: %d.\n", $n1, $n2, rand(($n2 + 1) - $n1) + $n1;
    
    

    Veja como usar o aleatório:

    
    printf "%d\n", rand(5); # Gera de 0 a 4
    printf "%d\n", rand(5) + 1; # Gera de 1 a 5
    printf "%d\n", rand((14 + 1) - 12) + 12; # Gera de 12 a 14