<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>да кроме 2 и 3  его нету . <br>
    </p>
    Кстати как я понял Net::Patricia не очень мне подходит(удобен) ведь
    мне надо найти адрес которого нет в массиве<br>
    <br>
    This module uses a Patricia Trie data structure to quickly perform
    IP address prefix matching for applications such as IP subnet,
    network or routing table lookups ?<br>
    <br>
    <div class="moz-cite-prefix">On 11/25/2016 03:50 PM, Толян II via
      Moscow-pm wrote:<br>
    </div>
    <blockquote
cite="mid:CAJMZ6sC_rjpZ9ycC8Q5nZRPNfm69Lhd3ivLrF5mAdA+M9zn_Ew@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>У тебя может быть overload в нескольких местах:<br>
          </div>
          1) В массиве @ips<br>
        </div>
        2)  while( $ipn < $ipn->broadcast )              --- вызов
        метода + overload<br>
        3) my $iponly = (split '/', $ipn++)[0]; #get<span
          class="gmail-im">     --- overload в чистом виде +
          преобразование в строку.<br>
          <br>
          <br>
        </span>
        <div>
          <div>
            <div>
              <div>
                <div><br>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">25 ноября 2016 г., 14:38 пользователь
          Naim Sh via Moscow-pm <span dir="ltr"><<a
              moz-do-not-send="true" href="mailto:moscow-pm@pm.org"
              target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a></a>></span> написал:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Оки и
            какой вариант быстрее того же map будет .<br>
            код имеет такой вид ( точнее его кусок который больше всего
            времени и ест )<br>
            <br>
            массив @ips имеет стандартные ipv4 адреса типа 10.56.6.2,
            10.135.8.23  , 10.135.22.43 и тд и тп .<br>
            <br>
                    my $ipn = NetAddr::IP->new("$first_ip/$n<wbr>etmask");<br>
            <br>
                    while( $ipn < $ipn->broadcast )<br>
                    {<br>
                        my $iponly = (split '/', $ipn++)[0]; #get<span
              class=""><br>
              <br>
                          if ( ! ( grep {$iponly eq $_}  @ips )  )<br>
            </span>
                        {<br>
                            return $iponly;<br>
                        }<br>
            <br>
                    }<br>
            <br>
            first отдает не то что мне нужно из под этой сети адрес в
            данном случае 10.135.x.y а 10.56.x.y хотя да он первый
            пустой, но grep выдает то что нужно.<br>
            <br>
            Вроде tie переменных и т.д нету
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                <br>
                On 11/25/2016 03:29 PM, Sergey Aleynikov via Moscow-pm
                wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  Добрый день,<br>
                  <br>
                  map будет быстрее только если поисков по одному и тому
                  же исходному<br>
                  массиву @ips будет несколько - т.к. операция
                  построения хэша дорогая.<br>
                  Одноразовый поиск - греп быстрее. first возвращает
                  другое (по смыслу)<br>
                  значение, чем греп (элемент, а не количество), но
                  логически для этой<br>
                  задачи разницы быть не должно.<br>
                  <br>
                  PS: my %ips; @ips{@ips} = (); быстрее, чем my %ips =
                  map { $_ => 1 } @ips;<br>
                  <br>
                  Best regards,<br>
                  Sergey Aleynikov<br>
                  <br>
                  <br>
                  25 ноября 2016 г., 14:00 пользователь Naim Sh via
                  Moscow-pm<br>
                  <<a moz-do-not-send="true"
                    href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a>>
                  написал:<br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    Коллеги, столкнулся с тем что код такого вида ,
                    используемый для поиска<br>
                    свободных ip v4 адресов на размерах 500-1000
                    элементов отрабатывается под 5<br>
                    секунд версия с map :<br>
                    <br>
                    my %ips = map { $_ => 1 } @ips;<br>
                    if (not exists($ips{$iponly} ))<br>
                    {<br>
                             return $iponly;<br>
                    }<br>
                    <br>
                    <br>
                      и с grep(sic!) ~2 секунду :<br>
                    <br>
                    if ( ! ( grep {$iponly eq $_ } @ips ) )<br>
                    # spent 27.4ms making 814 calls to
                    NetAddr::IP::Lite::broadcast, avg<br>
                    34µs/call<br>
                    # spent 9.56ms making 814 calls to<br>
                    NetAddr::IP::Lite::__ANON__[Ne<wbr>tAddr/IP/Lite.pm:268],
                    avg 12µs/call<br>
                    {<br>
                         return $iponly;<br>
                    }<br>
                    <br>
                    Еще трабла в том что легендарный List::Util отдает
                    быстро но почему не тот<br>
                    же результат( пробовал first , none ) что и grep?<br>
                    <br>
                    коллеги это нормально на более-менее среднем
                    сервачке ?<br>
                    <br>
                    <br>
                    --<br>
                    Moscow.pm mailing list<br>
                    <a moz-do-not-send="true"
                      href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a>
                    | <a moz-do-not-send="true"
                      href="http://moscow.pm.org" rel="noreferrer"
                      target="_blank">http://moscow.pm.org</a><br>
                    <br>
                  </blockquote>
                </blockquote>
                <br>
                -- <br>
                 <br>
                -- <br>
                Moscow.pm mailing list<br>
                <a moz-do-not-send="true" href="mailto:moscow-pm@pm.org"
                  target="_blank">moscow-pm@pm.org</a> | <a
                  moz-do-not-send="true" href="http://moscow.pm.org"
                  rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://moscow.pm.org">http://moscow.pm.org</a></a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
 </pre>
  </body>
</html>