Hallo,
Ich hoffe ich störe nicht ;-) Vor einiger Zeit hab` ich mich auch mit einer größeren Textdatenbank unter Perl beschäftigt. Innerhalb der Tabelle(Datei) habe ich die Datensätze in je eine Zeile geschrieben, und die Felder durch Sonderzeichen getrennt (Comma Separated Values).
Da Du ja weist, wieviele Felder ein Datensatz in einer Tabelle hat, kannst Du ja anhand der Reihenfolge der Felder feststellen, um welches Attribut es sich handelt.
In einer weiterentwickelten Form dieser CSV-Datenbank habe ich die Attributbezeichner in die erste Zeile geschrieben und ebenfalls durch Sonderzeichen getrennt. So konnte ich durch auslesen der ersten Zeile die Werte immer ihrem Attribut zuordnen. Um an die Daten zu kommen habe ich das ganze in eine Struktur vom Typ:$db{$tabelle}->{$primarykey}->{$attribut} = $value;
eingelesen, wobei eines der Attribute als Primärschlüssel definiert wird, der für jeden Datensatz einmalig ist.
So kannst Du jeden Datensatz einer bestimmten Tabelle über dessen Primärschlüssel ansprechen, bzw. auch durch Schleifen über die Keys der Hashs nach bestimmten Werten eines Attributs suchen.
Einen Schritt geschickter wird es dann, wenn man nun noch das Datenbank-Modul DBI einsetzt - und dazu den Datenbanktreiber (DBD) für CSV-Dateien -> DBD::CSV.
Normalerweise wird auch hier aus den CSV-Dateien die 1. Zeile für die Attribut-Namen verwendet. (geht aber auch anders). Dann kann man die Dateien wie eine Datenbank öffnen und mit SQL-Anfrage auf die Datensätze zugreifen:
'SELECT * FROM personen WHERE id > 17'
Macht einen fit für Datenbank-Anwendungen ;-) Und bei größeren Sachen kann man sich gleich auf mySQL stürzen ...
Jörk