Leser: 1
![]() |
|< 1 2 >| | ![]() |
15 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use strict;
use File::Find;
my $var = '';
my @files = ();
my $startdir = '.';
sub process_item{
push(@files,$File::Find::dir) if(-f $_ && !-e $File::Find::dir );
}
find(\&process_item, $startdir);
print join("\n", (@files));
if(-f $_ && !-e $File::Find::dir );
if (-f $_ && !-e $File::Find::dir) ...
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
36
37
38
39
40
use strict;
use warnings;
use File::Find;
no warnings 'File::Find';
my %dirs = ();
my $startdir = '.';
sub filter_for_rrd {
# filtere aus dem Verzeichnis alle rrd dateien heraus
my @files = grep /\.rrd$/, @_;
# filtere alle Unterverzeichnisse heraus
my @dirs = grep -d, @_;
# falls rrd Dateien vorhanden waren, speichere das Verzeichnis
# samt der Liste der Dateien in %dirs
$dirs{$File::Find::dir} = \@files if (@files);
# gib für File::Find die Liste der Verzeichnisse und der rrd Dateien
# zurück
return @dirs, @files;
}
sub process_rrd {
if (-f $_) {
# bearbeite einzelne rrd Datei hier, oder lasse die ganze
# process_rrd Subroutine einfach leer.
}
}
find({
preprocess => \&filter_for_rrd,
wanted => \&process_rrd },
$startdir);
# %dirs enthält jetzt einen Hash, dessen keys die Pfade zu allen
# Verzeichnissen mit rrd Dateien sind und dessen values jeweils
# Referenzen auf Arrays mit den rrd Dateien sind.
use Data::Dumper;
print Dumper \%dirs;
![]() |
|< 1 2 >| | ![]() |
15 Einträge, 2 Seiten |