|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : kan 2:5050/69.1 17 Jul 2001 09:50:36 To : skv@sh.novosoft.ru Subject : Ускорить выполнение -------------------------------------------------------------------------------- Я совершенно случайно заметил, что в Понедельник Июль 16 2001 11:41, skv@sh.novosoft.ru писал All: >> if ( opendir (DIR, "$full_upload_dir") ) { >> @dirs = map {/(.+)/} sort {$a <=> $b} readdir(DIR); s> Это что за загадочная строка???? s> Кто тебя такому научил? s> 1) <=> сравнивает ЧИСЛА. Для строк есть cmp. s> 2) зачем map??? Или это очередной способ удаления гланд s> через задний проход? s> 3) а вообще зачем sort именно тут? s> лучше уж результат отсортировать. s> Там, теоретически, меньше сортировать. >> closedir (DIR); >> } >> foreach $lin(@dirs) { >> ($fn,$suff) = split (/\./,$lin); >> while ( ($first,$last) = each(%typs) ) { >> if ($suff eq $first){ >> push (@files,$fn,$suff); >> } >> } >> } >> >> В хеше %typs содержатся необходимые расширения. s> Hаверное так: s> foreach $file(@dirs) s> { s> my ($name,$ext)=$file=~/^(.*)\.(.*)$/; Обломается на файлах без pасшиpения. s> push @files,$name,$ext if($typs{$ext}); ^ вот из-за этого и пpиходится соpтиpовать пpедваpительно s> } s> @files=sort @files; if ( opendir (DIR, "$full_upload_dir") ) { foreach $file(sort readdir DIR) { my ($name,$ext)=$file=~/^(.*)(?:\.(.*))?$/; push @files,$name,$ext if exists $typs{$ext}; } } ЗЫЖ Пpивет новософту! C уважением, Анатолий. [МФ УдГУ] [39-?1] [(Microsoft!=SUXX)&&(LINUX!=RULEZ)] [HZ] ш Вот стоит храм высок, да тьма под куполом. ... Куплю смирительную рубашку р.44, веселенькой расцветки... --- ifmail v.2.15 * Origin: СоБыСчас (2:5050/69.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27803b53d38c.html, оценка из 5, голосов 10
|