Thread string aus 2 dateien in ein 3 Datei schreiben (2 answers)
Opened by Rambo at 2004-07-05 19:17

Strat
 2004-07-06 01:43
#83899 #83899
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
datei zwei sieht nach einer INI-Datei aus... auf CPAN gibt es genuegend Module, die dir dabei helfen...

sonst vielleicht

Code: (dl )
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
48
49
50
my %data1 = ();
unless (open (FH1, $file1)) {
 die ".....: $!\n";
}
while (<FH1>) {
 chomp($_);
 my ($key, $value) = split(/\s*=\s*/, $_, 2);
 $data1{$value} = $key;
}
close (FH1);

my %data = ();
unless (open (FILE2, $file2)) {
 die "Error in opening '$file2': $!\n";
}
else {
 local $/; # alles auf einmal einlesen
 my $content2 = <FILE2>;
 close (FILE2);
 $content2 =~ s/(^\s+|\s+$)//; # whitespace am anfang und ende killen

 # aufsplitten nach \n[....]\n und [...] auch speichern; ok, man koennte es
 # wohl auch direkt in einem hash speichern, aber so ist es fehlertoleranter
 my @content = split(/\n(\[.+?\])\s*\n/, $content2)
 my $key;

 foreach my $entry (@content) {
   if ($entry =~ /\[(.+)\]/) { # ueberschrift [...] feststellen
     $key = $1;
     next;
   }
   else { # muss der rest sein
     foreach my $line (split(/\n/, $entry)) { # nach zeilen aufteilen
       my ($subKey, $value) = split(/\s*=\s*/, $line, 2); # line nach = aufsplitten

       # hier waere vielleicht eine ueberpruefung auf existenz nicht schlecht
       %data{$key}->{$subKey} = $value;
   } # foreach $line
 } # foreach $entry
} # else

# ausgeben
foreach my $key (keys %data) {
 print "[$data1{$key}]\n";
 print "IP_GATEWAY = $data{$key}->{GATEWAY}\n";
 print "VMAC =   $data{$key}->{MACPREFIX}$data{$key}->{MAC}\n";
 # ...

 print "\n";
} # foreach $key

nicht getestet, aber vielleicht funktionierts ja... ein bisschen mehr fehlerueberpruefung waere wohl auch nicht schlecht...\n\n

<!--EDIT|Strat|1089063817-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread string aus 2 dateien in ein 3 Datei schreiben