5 Einträge, 1 Seite |
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 {
}
}
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
$/ = "\x1f\x0a"; # setze das Eingabedatensatztrennzeichen
# auf die Hexadezimalbytesequenz 1f 0a
%records = (); # erzeuge Hash %records mit globalem Scope,
# initialisiere die Variable auf den leeren Hash
%termtoid = ();
my $recid = ""; # erzeuge Skalar $recid mit lexikalischem Scope,
# initialisiere die Variable auf den leeren String
while(<>) { # solange weitere Daten vorhanden sind, lies von STDIN
# oder der ersten automatisch geoeffneten Datei auf der
# Kommandozeile. Die eingelesenen Bloecke, die durch $/
# terminiert sind, werden jeweils in $_ gespeichert
chomp; # entferne $/ am Ende des gelesenen Datensatzes
s/\n([[:upper:][:digit:]])/ $1/g; # ersetze alle Vorkommen von einem
# Zeilenumbruch, gefolgt von
# (einem einzelnen Grossbuchstaben oder
# einer Ziffer) in $_ durch $(den
# Grossbuchstaben oder die Ziffer)
s/\n//g; # entferne alle Vorkommen von Zeilenumbruechen in $_
s/% /%/g; # ersetze alle Vorkommen von "% " in $_ durch "%"
if (/(..)=(.*)/) { # falls $_ die Form (zwei beliebige Zeichen)=(null
# oder mehr beliebige Zeichen) hat:
my $key = $1; # erzeuge Skalar $key mit lexikalischem Scope,
# initialisiere die Variable auf die $(Sequenz
# zweier beliebiger Zeichen) aus der Bedingungsabfrage
[...]
5 Einträge, 1 Seite |