top10.pl;
#!/usr/bin/perl -w
use strict;
# Extrai o banco de dados dentro de um hash
my $data = {};
open (DATA, "db.txt");
while (<DATA>) {
chomp;
my ($id, $nome, $votos, $email) = split /\|/;
$data->{$id}->{id} = $id;
$data->{$id}->{nome} = $nome;
$data->{$id}->{email} = $email;
$data->{$id}->{votos} = $votos;
}
close (DATA);
# Faz a ordenação de votos para quem esta em primeiro e quem esta em ultimo.
my @ordem = sort { $data->{$b}->{votos} <=> $data->{$a}->{votos} || $a cmp $b } keys %$data;
print "Content-Type: text/html\n\n";
print "<pre>\nTop 10\n----------\n";
# Simples loop para imprimir o top tirado da ordenação
my $n = 0;
foreach (0 .. 9) {
$n++;
print "$n - $data->{$ordem[$_]}->{nome} ( $data->{$ordem[$_]}->{email} ) tem ( $data->{$ordem[$_]}->{votos} ) votos, seu id eh $data->{$ordem[$_]}->{id}.\n";
}banco de dados usado:
db.txt;
1|asd|12|asd@hastr.com 2|lero|1|lero@t.com 3|ze|10|ze@bah.com 4|re|3|re@irgh.com 5|aham|4|aham@oi.com 6|ui|9|ui@hi.com 7|bud|12|asd@hastr.com 8|arth|1|lero@t.com 9|coers|10|ze@bah.com 10|asrbu|3|re@irgh.com 11|akds|4|aham@oi.com 12|asdlwe|9|ui@hi.com 13|lkjb|12|asd@hastr.com 14|awelkjd|1|lero@t.com 15|ahamad|10|ze@bah.com 16|rekjhsd|3|re@irgh.com 17|aslkiwe|4|aham@oi.com 18|liou|9|ui@hi.com
Espero que gostem =D
qualquer dúvida eh so falar.










