Frage : Perl - Schleife using Variablen, wenn existieren

In einem Index verursachte ich, habe ich einen Abschnitt, in dem ich eine lange Liste der Akten habe, die i-Prüfung von unseren cvs, dann von einer Überprüfung, zum zu sehen, welche Akten heraus, dessen dann ein Verzeichnis für jeden Satz des Indexes der Akten found.

The Beispielunterhalb der Arbeiten verursacht und das Hauptverzeichnis (Verzeichnis) dann Vorverzeichnis (Hilfe) und 4 Vorverzeichnisse in verursacht (Hilfe), wie überprüft werden:

# >ls - L Verzeichnis/help/
total 8
drwxr-xr-x 23. Juli 14 2 anderes anderes 512: 15 ändern-process
drwxr-xr-x 23. Juli 14 2 anderes anderes 512: 15 Unternehmens-identity
drwxr-xr-x 23. Juli 14 2 anderes anderes 512: 15 Beispiel-clients
drwxr-xr-x 23. Juli 14 2 anderes anderes 512: 15 images


This alle bearbeitet o.k. die Weise, die ich sie habe, jedoch in meinem Index habe ich eine sehr lange Liste der Akten von den verschiedenen Vorverzeichnissen, was ich tun möchte soll alles entfernen, wenn Aussagen ich für die Schaffung eines Verzeichnisses habe, wenn der gefunden wurde und das variable Sein überprüftes exists.

How ich setzte die Variablen kann ich habe, dass ich die Überprüfung an tue, um zu sehen, wenn sie in einer foreach Schleife oder möglicherweise in einer Weileschleife existieren und dann die Verzeichnisse, wenn es so ich gebraucht wird, nicht in hundert mich setzen muss, oder so wenn statements.

Thanks,
verursache
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
#! /usr/bin/perl
strenges verwenden;
Gebrauch Akte:: Kopie; 

mein $web_dir = „Verzeichnis“;
wenn (! - d „directory.slb.com ") {
   mkdir („$web_dir“, 0777);
}

# heraus von CVS überprüft zu werden Aktenliste,
meine @CVSfiles = qw (
 Entwicklung/Netzakten/Hilfe/file.xx
 Entwicklung/Netzakten/Hilfe/file2.xx
 Entwicklung/Netzakten/Hilfe/Bilder/file.xx
 Entwicklung/Netzakten/Hilfe/Bilder/file2.xx
 Entwicklung/Netzakten/Hilfe/Ändernprozeß/file.xx
 Entwicklung/Netzakten/Hilfe/Ändernprozeß/file2.xx
 Entwicklung/Netzakten/Hilfe/Unternehmens-identität/file.xx
 Entwicklung/Netzakten/Hilfe/Unternehmens-identität/file2.xx
 Entwicklung/Netzakten/Hilfe/Beispielklienten/file.xx
 Entwicklung/Netzakten/Hilfe/Beispielklienten/file2.xx
);

mein $help;
mein $images;
mein $bulk_ops;
mein $change_process;
mein $corporate_identity;
mein $example_clients;
mein $pm_scripts;
mein $cgi_scripts;
mein $reports;

foreach mein $files (@CVSfiles) {
  wenn ($files =~ m/development \ /web-files \/(Hilfen) \/.+/) {# $help für Verzeichniskreation einstellen, wenn Sie gefunden werden
    wenn ($1 =~ m/help/) {$help = „Hilfe“; }
  }
  wenn ($files =~ m/development \ /web-files \ /help \/(. +) \/.*/) {# $help/sub_directory für Verzeichniskreation einstellen, wenn Sie gefunden werden
    wenn ($1 =~ m/images/) {$images = „Bilder“; }
    wenn ($1 =~ m/bulk-ops/) {$bulk_ops = „Masse-ops“; }
    wenn ($1 =~ m/change-process/) {$change_process = „Ändernprozeß“; }
    wenn ($1 =~ m/corporate-identity/) {$corporate_identity = „Unternehmens-identität“; }
    wenn ($1 =~ m/example-clients/) {$example_clients = „Beispielklienten“; }
    wenn ($1 =~ m/cgi-scripts/) {$cgi_scripts = „Cgiindexe“; }
    wenn ($1 =~ m/reports/) {$reports = „berichtet“; }
  }
}

## bilden Vorverzeichnisse, wenn es benötigt wird


wenn (&& ($help) (! - d „Hilfe“))  {
   mkdir („$web_dir/help“, 0777);
}

wenn (&& ($images) (! - d „Hilfe/Bilder“))   {
   mkdir („$web_dir/help/images“, 0777);
}

wenn (&& ($bulk_ops) (! - d „Hilfe/bulk_ops“))   {
   mkdir („$web_dir/help/bulk_ops“, 0777);
}

wenn (&& ($change_process) (! - d „Hilfe/Ändernprozeß“))   {
   mkdir („$web_dir/help/change-process“, 0777);
}

wenn (&& ($corporate_identity) (! - d „Hilfe/Unternehmens-identität“))   {
   mkdir („$web_dir/help/corporate-identity“, 0777);
}

wenn (&& ($example_clients) (! - d „Hilfe/Beispielklienten“))   {
   mkdir („$web_dir/help/example-clients“, 0777);
}

wenn (&& ($cgi_scripts) (! - d „Hilfe/Cgiindexe“))   {
   mkdir („$web_dir/help/cgi-scripts“, 0777);
}

wenn (&& ($reports) (! - d „Hilfe/Reports“))   {
   mkdir („$web_dir/help/reports“, 0777);
}

Antwort : Perl - Schleife using Variablen, wenn existieren

Ich tun es eher wie dieses:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
#! /usr/bin/perl

strenges verwenden;
Warnungen verwenden;
Gebrauch Akte:: Kopie;
Gebrauch Akte:: Weg;
Gebrauch Akte:: Basename;

mein $web_dir = „Verzeichnis“;
wenn (! - d „directory.slb.com ") {
   mkdir („$web_dir“, 0777);
}

# heraus von CVS überprüft zu werden Aktenliste,
meine @CVSfiles = qw (
 Entwicklung/Netzakten/Hilfe/file.xx
 Entwicklung/Netzakten/Hilfe/file2.xx
 Entwicklung/Netzakten/Hilfe/Bilder/file.xx
 Entwicklung/Netzakten/Hilfe/Bilder/file2.xx
 Entwicklung/Netzakten/Hilfe/Ändernprozeß/file.xx
 Entwicklung/Netzakten/Hilfe/Ändernprozeß/file2.xx
 Entwicklung/Netzakten/Hilfe/Unternehmens-identität/file.xx
 Entwicklung/Netzakten/Hilfe/Unternehmens-identität/file2.xx
 Entwicklung/Netzakten/Hilfe/Beispielklienten/file.xx
 Entwicklung/Netzakten/Hilfe/Beispielklienten/file2.xx
);

foreach mein $file (@CVSfiles) {
    mein $dir = dirname ($file);
    mkpath ($dir) wenn! - d $dir;
}
Weitere Lösungen  
 
programming4us programming4us