ich bin in PERL noch ein ziemlicher Anfänger,
Ich denke, der wesentliche Teil Deines Problems ist unabhängig von der Programmiersprache.
Ich möchte in einer ASCII-Datei einige "Datensätze" speichern.
Jeweils einige Schlüssel mit dazugehörigen Werten.
Dann fang mal damit an, diese Datensätze zu beschreiben und zu klassifizieren.
Sind alle Daten vom selben Format? Oder hast Du mehrere Sorten von Daten?
Welches Deiner Datenelemente wird durch welche Eigenschaften beschrieben?
Falls letzteres: Welche Beziehungen bestehen zwischen diesen Daten? (So was in der Art: "Ein X-Ding hat mehrere Y-Dinger" ...).
Wenn Du das hast, dann kannst Du die Menge der Tabellen und zu jeder von diesen die Menge der Spalten festlegen.
(Das ist noch nicht alles, aber bei einfachen Fällen die Hauptsache.)
Als nächstes kommt die Frage: "Wie realisiere ich eine Tabelle?"
Im einfachsten Fall kannst Du pro Tabelle einfach eine Datei verwenden. Wenn Du sicherstellen kannst, daß ein bestimmtes Zeichen in keinem Deiner Feldinhalte vorkommt, dann kannst Du die Felder eines Datensatzes innerhalb einer Zeile durch dieses Zeichen getrennt darstellen; kannst Du das nicht, dann wird es aufwendiger.
All dies findet noch lange vor der Verwendung einer Programmiersprache statt - es sei denn, Du willst einen vorgefertigten Datenbank-Zugangsmodul verwenden, wie Perl das anbietet.
Später sollen dann u.a. auch Daten wie z.B. "Welche verschiedenen Werte kommen im Feld XY vor" oder "wieviele Datensätze gibt es überhaupt".
Wenn Du eine entsprechende Darstellung einer Tabelle hast, kannst Du eine Schleife über alle Datensätze der Tabelle laufen lassen und Deine Abfragen relativ einfach realisieren.
Mit einer richtigen relationalen (SQL-)Datenbank lassen sich Deine Anforderungen direkt in SQL formulieren.
Meine Frage ist nun, wie man so eine "Textdatenbank" am besten aufbaut um sie dann später möglichst einfach auszulesen und auszuwerten.
Wie gesagt: Die Grundlage ist es, die eigenen Daten zu verstehen und exakt zu beschreiben.