Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Popov Nikita Valentinovich           2:5020/400     08 Sep 2001  13:48:24
 To : Sergey Yurevich
 Subject : Re: Про получение списка фа йлов
 -------------------------------------------------------------------------------- 
 
 On Sat, 8 Sep 2001, Sergey Yurevich wrote:
 
 >  Вот состряпал код, который бы получал список файлов в 
 > каталоге и подкоталогах, но что-то не хочет работать. Исправьте плз что 
 > неправильно.
 > &get_list("$SEARCH_DIR");
 > sub get_list {
 > local($SEARCH_ROOT, $search_sub) = @_;
 > chdir("$SEARCH_ROOT$search_sub");
 > local(@filenames) = <*>;
 > local($file);
 > foreach $file (@filenames) {
 > if (-d $file && -r $file){
 > if ($search_dir){&get_list (SEARCH_ROOT, "$search_sub$file");}
 > else{&get_list (SEARCH_ROOT, $file);}
 > }
 > else {&search_in_file ("$file");}
 > }}
 > 
 > 
 
 Вот рабочий вариант:
 -------------------------------------------------
 #!/usr/bin/perl -w                                    
 sub get_list {                                        
     my @list = ();                                    
     my $root = shift;                                 
     my $sub_root = shift || "";                       
     $root=~s#/$##;                                    
     $sub_root=~s#/$##;                                
     $sub_root.="/" if $sub_root;                      
     my @filenames = `ls $root/$sub_root`;             
     foreach my $file (@filenames) {                   
         chomp $file;                                  
         $file = "$sub_root$file";                     
         push(@list,$file);                            
         if ((-d "$root/$file") && (-r "$root/$file")){
             push(@list, get_list($root, $file));      
         }                                             
     }                                                 
     return @list;                                     
 }                                                     
 print join(' ',get_list(shift))."\n";
 
 ---------------------------------------------------
           poksh
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Про получение списка фа йлов   Sergey Yurevich   08 Sep 2001 13:08:00 
 Re: Про получение списка фа йлов   Popov Nikita Valentinovich   08 Sep 2001 13:48:24 
Архивное /ru.perl/6554b6359288.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional