steve: Array durchsuchen

Beitrag lesen

Hallo liebe Leut,

habe folgendes Problem: Ich habe eine Textdatei, wobei jede Zeile einem Datensatz entspricht. Getrennt sind die Felder mit dem Zeichen "|"

Nr. Vorname Nachname

1|stefan|meier
2|otto|mueller
3|sabine|bauer
4|heidi|bach

Nun muss ich z.B. zwischen Satz 3 und 4 einen weiteren einfügen.
Dieser neue Satz soll die Nummer 3.1 erhalten.

1|stefan|meier
2|otto|mueller
3|sabine|bauer
3.1|walter|jansen
4|heidi|bach

Nun kann es vorkommen, das wieder ein Satz zwischen 3 und 4 eingefügt werden muss. Dieser soll nun die Nummer 3.2 erhalten

1|stefan|meier
2|otto|mueller
3|sabine|bauer
3.1|walter|jansen
3.2|evi|albert
4|heidi|bach

Und wenn sowas gegeben ist:

1|stefan|meier
2|otto|mueller
3|sabine|bauer
3.1|walter|jansen
3.2|evi|albert
3.4|herman|otto
4|heidi|bach

Dann soll ein neuer Satz zwischen 3 und 4 die Nummer 3.5 haben.

Wie kann maan das elegant lösen?

Mein Versuch:

open(DATA, "<$daten") || die("can't open/read $daten, $!");

@allRec = <DATA>; # alle Daten in ein Array kopieren

foreach $dataRec (@allRec) # Array durchlaufen
{
 ($entry{"nr"},$rest) = split(/|/,$dataRec);

if ($entry{"nr"} ne $gFormCtrl{"commentTo"})
 {
  $foundID = 0;
  push(@allRecTMP,$dataRec);
  # nicht gefunden => Satz in Hilfsarray koieren
 }
 else
 {
  $foundID = 1;
  # gefunden
 }
}

Meine Frage: Wie kann man die nächste fortlaufenden Nummer finden?

Weiss jemand eine Lösung?

Danke,
Steve