Ну как и предполагалось - использование массивов вместо хешей, как следствие полный проход по всем значениям вместо индексов. Однако оптимизация не совсем тривиальна из-за того, что маска различается, нужно учитывать внешние условия. Сколько у вас елементов в local_nets_dec, в client_nets_dec и сколько возможных масок(понятно, что всего 32, но сколько реально используется у вас и какие именно)? Ну а пока тривиальная оптимизация: $H1proxy = grep $ip1 eq $_, @nonlocalhosts; До основного цикла создаем хеш my %nonlocalhosts; map {$nonlocalhosts{$_}=1} @nonlocalhosts; или так my %nonlocalhosts = map {$_,1} @nonlocalhosts; После чего проверка будет осуществятся следующим образом: $H1proxy = $nonlocalhosts{$ip1}
|