Christian Kruse: Immer noch: Dateien ausschließen - ich schaffs nicht

Beitrag lesen

Hallo,

for my $FileType('*.html','*.shtml')
{for (0..16){
push @files,(('*/' x $_).$FileType)}
}

Wenn man das jetzt richtig formuliert, kommt dabei raus:

for my $FileType ('*.html', '*.shtml') {
  for(0..16) {
    push @files, ('*/' x $_).$FileType;
  }
}

Was das soll, weiss ich aber nicht... du erstellst damit einen Array
von Strings nach dem folgenden Muster:

*.html
*/*.html
*/*/*.html
...

Nicht zu durchsuchende Dateien

@files_nicht = ('site/bestaetigung.shtml');

Schneller ginge es mit
$files_maynot = {
  'site/bestaetigung.shtml' => 1
};

@Files=();

my @Files;

for(@files)
{
  push @Files,glob($_);
}

Jetzt verstehe ich, wofuer der Array of Strings oben gut sein sollte.
IMHO eine sehr, sehr schlechte Loesung....

%Files=();

my %Files = ();

for (@Files)
  {
   $Files{$_}=1;
  }
for(@files_nicht)
  {
   delete $Files{$_} if $Files{$_};
  }

Sinnvoller so:
$files_maynot = {
  'site/bestaetigung.shtml' => 1
};

sub collect_files() {
  my @collected_files;
  foreach my $path (@files) {
    foreach my $file (glob($path)) {
      push @collected_files unless $files_maynot->{$file};
    }
  }

return @collected_files;
}

Gruesse,
 CK