Thread Wer kann mir bitte das Skript erklären? (4 answers)
Opened by philo at 2005-10-25 14:51

philo
 2005-10-25 14:51
#59259 #59259
User since
2005-10-25
2 Artikel
BenutzerIn
[default_avatar]
hallo, wer kann mir bitte dieses skript erklären?
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
$/ = "\x1f\x0a";

%records = ();
%termtoid = ();

my $recid = "";
while(<>) {
 chomp;
 s/\n([[:upper:][:digit:]])/ $1/g;
 s/\n//g;

 s/% /%/g;

 if (/(..)=(.*)/) {
   my $key = $1;
   my $val = $2;

   #print qq([$key]=[$val]\n\n);

   if ($key eq 'NR') {
     $recid = $val;
     $records{$recid} = {};
   } else {
     $records{$recid}->{$key} = $val;
   }

   if ($key eq 'DE') {
     $termtoid{$val} = $recid;
   }
 } else {
 }
}


bin anfänger, muss aber unbedingt wissen, was in dieser gewöhnungsbedürftigen Syntax vor sich geht.
Ich weiss, dass ich mit anderen Sachen anfangen sollte, aber es ist jetzt nicht zu ändern.

Das Skript bekommt eine Text-Datei über die Kommandozeile.
Es fehlt noch der Teil vom Skript, in dem die eingelesenen Daten in eine XML-Datei geschrieben werden.

soviel habe ich schon rausgefunden.

die erste Zeile setzt für "chomp" das Zeichen, was je Zeil abgeschnitten werden soll. Allerdings funktioniert das nur, wenn man das zweite Zeichen ("\x0a") raus nimmt. Sonst geht es nicht.

Ich verstehe vor allem nicht die Zeilen bis zur ersten IF-Anweisung.
Die Text Datei Die eingelesen werden soll hat ungefähr folgenden Format:

NR=3234
DE= Hund
AB= Napf%Katze%Tier
VW=.....
...
...
NR=3323
DE= Katze
...
...
...

Wäre nett, wenn mir jemand die Sachen kurz erklaeren koennte. Ich nehme mal an, dass es sich um reguläre Ausdrücke handelt?

Vielen Dank und Gruss
philo\n\n

<!--EDIT|philo|1130237534-->

View full thread Wer kann mir bitte das Skript erklären?