Also ich habe mir da jetzt folgendes Programm zu geschrieben - bis jetzt ohne die Dateien zu modifizieren, weil ich erst gucken will, ob es denn auch macht, was ich will:
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
41
42
43
44
45
46
47
#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
use CGI::Carp qw( fatalsToBrowser warningsToBrowser);
use File::DosGlob;
use File::Find;
use Data::Dumper;
my $cgi = CGI->new();
print $cgi->header(), "Alle Verzeichnisse:<br />\n";
warningsToBrowser(1);
my $wantedVerz = '/home/www/bildung-rp/schularchiv/twiki/pub';
my @verz = ();
my @allvFiles = ();
sub wanted {
return if (/^\.$/ or /^\.\.$/);
print "[$_] is ein verzeichnis<br />\n" if (-d $_);
push @verz, $_;
}
find ({wanted =>\&wanted, no_chdir => 1}, $wantedVerz);
foreach( @verz ){
push @allvFiles, &File::DosGlob::glob("$_/*.*,v");
}
print "Alle v-Dateien:<br />\n";
print Dumper( @allvFiles );
print "<h1>Dateien:</h1>\n";
foreach my $file( @allvFiles ){
if( -d $file ){ next; }
open(DAT, "+>>$file") || die "$!";
flock DAT, 1;
foreach( <DAT> ){
$_ =~ s/nobody:/schularchiv:/;
print "$_\n";
}
close(DAT);
}
exit( 1 );
Was man aus einem Einzeiler nicht so alles meachen kann.
Naja, mein Problem:
Unten, da wo eigentlich substituiert werden soll erhalte ich keine Ausgabe.
Wieso?
Der Rest funktioniert, also ich erhalt eine Liste mit Allen Verzeichnissen und eine mit Allen geuchten Dateien.
mfg pktm\n\n
<!--EDIT|pktm|1067250333-->