The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"определение файл или папка в PERL"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"определение файл или папка в PERL"
Сообщение от globus emailИскать по авторуВ закладки on 26-Май-03, 06:46  (MSK)
привет всем....
пытаюсь определить папка это или файл
----skip
if (-d $files){
       &readdir($files);
       next;
}
else {
      &readfile($files);
      next;
}
----skip
при этом вызывается подпрограмма обработки файлов т.e. &readfile....
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "определение файл или папка в PERL"
Сообщение от uldus Искать по авторуВ закладки on 26-Май-03, 11:43  (MSK)

>if (-d $files){
>       &readdir($files);
>       next;
>}
>else {
>      &readfile($files);

не "else", а "elsif (-f $files){", иначе подпадут симлинки, fifo и т.д. Так же переназови функцию readdir, наименование совпадающее с системными функциями - плохой стиль.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "определение файл или папка в PERL"
Сообщение от globus emailИскать по авторуВ закладки on 26-Май-03, 12:16  (MSK)
батва какаято ....
вот измененный код
#!/usr/bin/perl
$direk = "/home";
opendir (DIREK, $direk) or die "can`t open directory $direk $!\n";
@fill = readdir (DIREK) or die "can`t read dir $directory";
close (DIREK);
#print @fill;

foreach $fill (@fill){
        next if ($fill eq ".");
        next if ($fill eq "..");
        if (-d $fill){
                &directoryread($fill);
                next;
        }
                elsif (-f $fill){
                        &filesread($fill);
                        next;
                }
}

sub directoryread {
        print "directory found $fill\n";
}

sub filesread {
        print "files found $fill\n";
}

вот дебаг

  DB<1> n
main::(./filter_dir.pl:11):             next if ($fill eq "..");
  DB<1> n
main::(./filter_dir.pl:12):             if (-d $fill){
  DB<1> n
main::(./filter_dir.pl:16):                     elsif (-f $fill){
  DB<1> n
main::(./filter_dir.pl:8):      foreach $fill (@fill){
  DB<1> n
main::(./filter_dir.pl:10):             next if ($fill eq ".");

ЧТО ЭТО ???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "определение файл или папка в PERL"
Сообщение от pth Искать по авторуВ закладки on 26-Май-03, 14:51  (MSK)
Может не

if (-d $fill){

а

if(-d "$direk/$fill") {

поможет?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "определение файл или папка в PERL"
Сообщение от globus emailИскать по авторуВ закладки on 27-Май-03, 05:56  (MSK)
>Может не
>
>if (-d $fill){
>

>
>if(-d "$direk/$fill") {
>
>поможет?
ага :) точно, только я сделал chdir ($direk); и все получилось....

в общем логично... ведь переменная получает просто список содержимого папки, if (-d ...) узнает (не нахадясь в папке) о ее реальном содержимом....

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру