|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : John Lepikhin 2:5070/156 14 Mar 2002 13:56:28 To : All Subject : оптимизировать код --------------------------------------------------------------------------------
Есть строка синбаев: $packed = '5020/1 2 5070/3 4 5'.
Требуется разодрать ее в хэш хэшей такого вида:
$seen{5020}{1} = 1;
$seen{5020}{2} = 1;
$seen{5070}{3} = 1;
$seen{5070}{4} = 1;
$seen{5070}{5} = 1;
Требуется делать это на приличных скоростях, поэтому регэкспы
и прочее отпадают. Максимальных скоростей смог добиться лишь совсем не
перловыми методами:
foreach (split / /, $packed) {
$pos = index ($_, '/');
if ($pos != -1) {
$host = substr ($_, 0, $pos);
$node = substr ($_, $pos+1);
$seen{$host}{$node}=1;
} else {
$seen{$host}{$_}=1;
}
}
Есть мысли по оптимизации?
--
... [лесные компьютерщики] -LNXuser 208417-
--- Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley)
* Origin: A poorly-installed InterNetNews site (2:5070/156)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/35951a9be4d7b.html, оценка из 5, голосов 10
|