Шукати в цьому блозі

пʼятниця, 9 серпня 2013 р.

Преобразование IPv4-адресов в Perl

В дополнение к предыдущему, религиозно верному, решению по сортировке ip-адресов отдельно хочется отметить решение "из коробки" cpan - модуль Sort::Key::IPv4.
Установить его можно либо из репозитория дистрибутива Linux, либо непосредственно с cpan:
# cpan
cpan[1]> install Sort::Key::IPv4
CPAN: Storable loaded ok (v2.39)
Reading '/home/olden/.cpan/Metadata'
--- 8< --- skip --- 8< ---
  sudo /usr/bin/make install  -- OK

cpan[2]> exit
Возьмём наш предыдущий набор ip-адресов:
my @array = ("127.0.0.1","212.90.160.8", "10.100.175.11", "10.10.10.8", "212.90.160.33","212.90.160.40");
my %hash = ("127.0.0.1" => "1", "212.90.160.8" => "0", "10.100.175.11" => "1", "10.10.10.8" => "1", "212.90.160.33" => "0", "212.90.160.40" => [ "1", "2" ] );
И отсортируем его используя функционал модуля Sort::Key::IPv4
foreach my $ip ( ipv4sort @array ) {
    printf("%s\n", $ip);
}
и, соответственно, для ключей хеша:
foreach my $ip ( ipv4sort keys %hash ) {
    printf("%s => %s\n", $ip, $hash{$ip});
}

Немає коментарів: