|
|
|
Junior Member
      
участник
Last Login: 21.02.2005 13:26
Сообщ.: 24,
Visits: 265
|
|
На апаче у меня запущен виртуальный каталог , физически он прикручен к каталогу "/Apache/MyProjects/". В нем в подкаталоге /Apache/MyProjects/html/ лежат статические html-ки . Из под апача я пытаюсь запустить скрипт , который бы просканировал эти html-ки , но он чего-то не работает . Вообще для команды ls вроде как нужен абсолютный путь , но мне кажется , что это как-то неверно , нужно бы как-то относительно корня виртуальной директории ... sub Get_Files { print "Get_Files start "; $basedir = '/Apache/MyProjects/html/'; chdir($basedir); foreach $file (@files) { $ls = `ls $file`; @ls = split(/\s+/,$ls); foreach $temp_file (@ls) { if (-d $file) { $filename = "$file$temp_file"; if (-T $filename) { push(@FILES,$filename); print "$filename" } } elsif (-T $temp_file) { push(@FILES,$temp_file); } } } }
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.10.2007 4:11
Сообщ.: 219,
Visits: 1 804
|
|
1. А ты уверен, что массив @files уже заполнен именами поддиректорий? И что они не начинаются со '/'? 2. chdir и split - лишнее. Лучше попробуй: @ls = `ls -c1 $basedir$file`; foreach $temp_file (@ls) { chomp($temp_file);
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.07.2006 17:05
Сообщ.: 124,
Visits: 1 356
|
|
НУ во-первых зачем использовать ls - я не понимаю, когдаесть встроенные функции Perl - opendir, readdir. Вот при помощи них и получай содержимое. ДЕлается это примерно так (уже в сотый раз привожу этот пример)
my $basedir="/home/user"; opendir(DIR,"$basedir") || die "$!"; my @FILES=grep(!/\.\.?$/,readdir DIR); # вырезаем имена родительского и текущего каталогов (то есть точки) closedir(DIR);
Теперь в массиве @FILES у тебя все файлы из директории /home/user.
PerlMonks.Org.Ru.... coming soon
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.10.2007 4:11
Сообщ.: 219,
Visits: 1 804
|
|
| ls часто работает быстрее, когда это под юниксом/линуксом.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.07.2006 17:05
Сообщ.: 124,
Visits: 1 356
|
|
Возможно это справедливо для оооченнь больших каталогов. И то - возможно. Я не замерял скорости. Но рекомендуют (особенно в веб-приолжениях) обходиться без системных вызовов.
PerlMonks.Org.Ru.... coming soon
|
|
|
|
|
Junior Member
      
участник
Last Login: 21.02.2005 13:26
Сообщ.: 24,
Visits: 265
|
|
Да я как бы и обошелся без системных вызовов :-) Все получилось , спасибо
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.07.2006 17:05
Сообщ.: 124,
Visits: 1 356
|
|
|
|
|