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";
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