q29191 发表于 2018-8-30 10:57:52

perl 递归两例

# cat Scan.pl  
#!/usr/bin/perl -s
  
#
  
use Cwd;
  
sub ScanDirectory{
  
    my $workdir = shift;
  
    my $startdir = cwd;
  
    chdir $workdir or die "Unable to enter dir $workdir:$! \n";
  
    opendir my $DIR,'.' or die "Unable toopen $workdir:$! \n";
  
    my @names = readdir $DIR or die "Unable to read $workdir:$!\n";
  
    closedir $DIR;
  
    foreach my $name (@names){
  
      next if ($name eq '.');
  
      next if ($name eq '..');
  
      if ( -d $name ){
  
            ScanDirectory($name);
  
            next;
  
      }
  
      if($name eq 'core'){
  
            if (defined $r ){
  
                unlink $name or die "Unable to delete $name :$! \n";
  
            }
  
            else{
  
                print "Found one in $workdir!\n";
  
            }
  
      }
  
    }
  
    chdir $startdir or die "Unable to change to dir $startdir:$!\n";
  
}
  
ScanDirectory('.');


页: [1]
查看完整版本: perl 递归两例