1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/perl -w
use utf8;
use XML::Simple;
use LWP::Simple;
use IO::Uncompress::Bunzip2 qw(bunzip2 $Bunzip2Error) ;
use File::Basename;
my $count = 4;
my $input = "http://dchublist.ru/hublist.xml.bz2";
my $output = ".hubs.xml";
getstore($input,basename($input)) or die "Ошибка получения файла \"$input\" : $!\n";
bunzip2 basename($input) => $output or die "Ошибка распаковки: $Bunzip2Error.\n";
my $xml = XMLin($output) or die "Ошибка открытия \"$output\": $!\n";
my @hubs;
for (@{$xml->{Hubs}->{Hub}}){
push @hubs,$_;
}
my %table;
for my $h (@hubs){
for (keys %$h){
$table{$h->{Users}} = [@{$h}{qw / Name Address/} ];
}
}
@hubs = sort {$b <=> $a } keys %table;
utf8::decode(my $format = "Хаб: %s. Пользователей: %s. Адрес: %s\n");
for(my $i=0;$i<$count;$i++){
utf8::decode($table{$hubs[$i]}[0]);
utf8::decode($table{$hubs[$i]}[1]);
utf8::decode($hubs[$i]);
printf $format,$table{$hubs[$i]}[0],$hubs[$i],$table{$hubs[$i]}[1]
}
~/ >>./r.pl 19:04 :)
Wide character in printf at ./r.pl line 32.
Хаб: Ozerki. Пользователей: 13230. Адрес: dchub://dc.ozerki.net
Wide character in printf at ./r.pl line 32.
Хаб: Andromeda Galaxy. Пользователей: 12483. Адрес: dchub://dc.a-galaxy.com
Wide character in printf at ./r.pl line 32.
Хаб: DCFilimaniaCOM. Пользователей: 11390. Адрес: dchub://dc.filimania.com
Wide character in printf at ./r.pl line 32.
Хаб: http://DCMagnets.ru - Магнет ссылки! Фильмы онлайн!. Пользователей: 9738. Адрес: dchub://dc.dcmagnets.ru