Вывод всех папок и файлов директории

code: #perl
  1. #!/usr/bin/perl
  2.  
  3. use warnings;
  4.  
  5. sub find($);
  6. sub find($)
  7. {
  8.     my $name=shift;
  9.     if(-d $name)
  10.     {
  11.         my $dir;
  12.         unless(opendir $dir, $name)
  13.         {
  14.             warn "$0: Невозможно открыть «$name»: $!\n";
  15.             return;
  16.         }
  17.         print "$name\n";
  18.         $name='' if $name eq '/';
  19.         for(readdir $dir)
  20.         {
  21.             next if $_ eq '.' or $_ eq '..';
  22.             find("$name/$_");
  23.         }
  24.         closedir $dir;
  25.     }
  26.     elsif(-f $name)
  27.     {
  28.         print "$name\n";
  29.     }
  30.     else
  31.     {
  32.         warn "$0: «$name»: $!\n";
  33.     }
  34. }
  35.  
  36. find($_) for @ARGV;
  37. find('.') unless @ARGV;
Поделиться:

Похожие статьи: