Тут нужен только List::Util qw( any ). Just fit.
25 ноября 2016 г., 14:00 пользователь Naim Sh via Moscow-pm < [email protected]> написал: > Коллеги, столкнулся с тем что код такого вида , используемый для поиска > свободных ip v4 адресов на размерах 500-1000 элементов отрабатывается под 5 > секунд версия с map : > > my %ips = map { $_ => 1 } @ips; > if (not exists($ips{$iponly} )) > { > return $iponly; > } > > > и с grep(sic!) ~2 секунду : > > if ( ! ( grep {$iponly eq $_ } @ips ) ) > # spent 27.4ms making 814 calls to NetAddr::IP::Lite::broadcast > <http://ironleg.azedunet.az/nytprof/NetAddr-IP-Lite-pm-197-line.html#1073>, > avg 34µs/call > # spent 9.56ms making 814 calls to NetAddr::IP::Lite::__ANON__[ > NetAddr/IP/Lite.pm:268] > <http://ironleg.azedunet.az/nytprof/NetAddr-IP-Lite-pm-197-line.html#266>, > avg 12µs/call > { > return $iponly; > } > > Еще трабла в том что легендарный List::Util отдает быстро но почему не тот > же результат( пробовал first , none ) что и grep? > > коллеги это нормально на более-менее среднем сервачке ? > > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
