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.