|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Stupnik 2:5020/400 16 Jul 2001 12:41:41 To : All Subject : Re: Ускорить выполнение -------------------------------------------------------------------------------- "Nikolay Pichtin" <Nikolay.Pichtin@f30.n5056.z2.fidonet.org> wrote in message news:995278410@f30.n5056.z2.ftn... > Добрый день All ! > > Есть скрипт, который читает каталог и отбирает > имена файлов по расширению. > Можно-ли оптимизировать скрипт с целью ускорения работы? > > if ( opendir (DIR, "$full_upload_dir") ) { > @dirs = map {/(.+)/} sort {$a <=> $b} readdir(DIR); Это что за загадочная строка???? Кто тебя такому научил? 1) <=> сравнивает ЧИСЛА. Для строк есть cmp. 2) зачем map??? Или это очередной способ удаления гланд через задний проход? 3) а вообще зачем sort именно тут? лучше уж результат отсортировать. Там, теоретически, меньше сортировать. > closedir (DIR); > } > foreach $lin(@dirs) { > ($fn,$suff) = split (/\./,$lin); > while ( ($first,$last) = each(%typs) ) { > if ($suff eq $first){ > push (@files,$fn,$suff); > } > } > } > > В хеше %typs содержатся необходимые расширения. Hаверное так: foreach $file(@dirs) { my ($name,$ext)=$file=~/^(.*)\.(.*)$/; push @files,$name,$ext if($typs{$ext}); } @files=sort @files; -- Best regards, Konstantin. Brainbench MVP for perl. Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488854044f1.html, оценка из 5, голосов 10
|