$/ = "\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 [...]