Advertisement
overloop

myfind.pl

Jul 17th, 2015
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.80 KB | None | 0 0
  1.  
  2. sub myFind {
  3.   my @dirs = @_;
  4.   my @resultFiles = ();
  5.   my @resultDirs = ();
  6.  
  7.   @dirs = grep { if (-f $_) { push(@resultFiles,$_) }; -d $_ } @dirs;
  8.  
  9.   while(scalar(@dirs) > 0) {
  10.     my $dir = shift(@dirs);
  11.     push(@resultDirs,$dir);
  12.    
  13.     opendir(my $dh,$dir);
  14.     for my $item (readdir($dh)) {
  15.       #print $item . "\n";
  16.       if ($item ne '.' && $item ne '..') {
  17.         $item = $dir . '/' . $item;
  18.         push(@resultFiles,$item) if ( -f $item );
  19.         push(@dirs,$item) if ( -d $item );
  20.         #print $item;
  21.       }
  22.     }
  23.     closedir($dh);
  24.   }
  25.   return (\@resultDirs,\@resultFiles);
  26. }
  27.  
  28. sub myFindFiles {
  29.   my ($resultDirs,$resultFiles) = myFind @_;
  30.   return @$resultFiles;
  31. }
  32.  
  33. sub myFindDirectories {
  34.   my ($resultDirs,$resultFiles) = myFind @_;
  35.   return @$resultDirs;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement