В дополнение к предыдущему, религиозно верному, решению по сортировке ip-адресов отдельно хочется отметить решение "из коробки" cpan - модуль Sort::Key::IPv4.
Установить его можно либо из репозитория дистрибутива Linux, либо непосредственно с cpan:
Установить его можно либо из репозитория дистрибутива Linux, либо непосредственно с cpan:
Возьмём наш предыдущий набор ip-адресов:# 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
И отсортируем его используя функционал модуля Sort::Key::IPv4my @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" ] );
и, соответственно, для ключей хеша:foreach my $ip ( ipv4sort @array ) { printf("%s\n", $ip); }
foreach my $ip ( ipv4sort keys %hash ) { printf("%s => %s\n", $ip, $hash{$ip}); }