Peter Kaufmann: Modul zur Datenverwaltung

Morgen allerseits,

vielleicht hat der ein oder andere schon mal das selbe Problem gehabt hat und kann mir einen Tipp geben:
Ich suche ein Perl Modul das mir ein einfaches Interface zu Datensätzen, welche in einer "normalen" Datei gespeicherten werden sollen, bereitstellt.
Vom Funktionsumfang her brauche ich Funktionen zum anlegen, updaten, löschen und auslesen eines bzw. meherer Datensätze.

Die Randbedingungen:

  • Ich habe auf dem Server, auf dem das fertige Script laufen soll, leider keine root Rechte und muß deshalb Module als normaler Benutzer "installieren".
  • Die Datei mit den Daten sollte noch "humanreadable" sein (schön wäre es auch wenn man die Daten von Hand editieren könnte).
  • Die Datensätze sind recht simpel gehalten: Ein timestamp und jeweils ein String für author, title, überschrift, kurzer_text und langer_text.
  • Performance ist nicht so wichtig.

Ich hatte zuerst - insbesondere aufgrund des zweiten Punktes - an eine Lösung mit XML gedacht. Leider habe ich aber noch nichts passendes gefunden. Die Forumssuche funktioniert ja leider nicht und bei der CPAN Suche habe ich  anscheinend nicht die richtigen Fragen gestellt ;-)

Guten n8,

Peter

p.s.: Ich habe in meiner jugendlichen Naivität zuerst probiert selbst ein Modul zu schreiben, daß den benötigten Funktionsumfang bereitstellt. Leider ist die Aufgabe aber doch schwieriger als ich dachte: Insbesondere das Vernünftige updaten und löschen von Datensätzen ist nicht trivial.

  1. Hi,

    Ich hatte zuerst - insbesondere aufgrund des zweiten Punktes - an eine Lösung mit XML gedacht. Leider habe ich aber noch nichts passendes gefunden. Die Forumssuche funktioniert ja leider nicht und bei der CPAN Suche habe ich  anscheinend nicht die richtigen Fragen gestellt ;-)

    Ich würde mich mal nach "xml" und "pureperl" erkundigen. Einige Module gibt es nämlich auch in einer derartigen Version. Diese müsstest du theoretisch auch ohne root-Rechte installieren können. Ich khabs allerdings noch nie probiert, und weiß nicht ob es wirklich funktioniert. Auf jeden Fall, ist es auf diese weise schwieriger.

    p.s.: Ich habe in meiner jugendlichen Naivität zuerst probiert selbst ein Modul zu schreiben, daß den benötigten Funktionsumfang bereitstellt. Leider ist die Aufgabe aber doch schwieriger als ich dachte: Insbesondere das Vernünftige updaten und löschen von Datensätzen ist nicht trivial.

    Ich finde, dass gent noch. Aber das einigermaßen speicherschonend _und_ performant hinzubekommen, ist extrem schwierig.
    Man kann einfach eine ein komplexere Datenstruktur aufbauen, die ganzen Daten einlesen, und Zugriffsfunktionen basteln. Danach schreibt man das ganze wieder in eine Datei. Ist halt nur sehr langsam.

    Grüße und viel Erfolg
    Andres Freund

    --
    ss:) zu:) ls:} fo:) de:] va:) ch:| n4:& rl:° br:^ js:( ie:% fl:( mo:|
  2. Hi Peter,

    Die Randbedingungen: 2 und 3

    "schreien" ja förmlich nach .csv - Files. In Verbindung mit SQL (DBD/DBI-Module) sollte dies alles recht problemlos lösbar sein.
    Schau dich mal nach CSV / DBI SQL im CPAN um.
    Und hier noch ein kleiner Link auf einen Artikel, der eine kurze Einführung in die Materie bringt.

    http://www.linux-magazin.de/Artikel/ausgabe/1999/05/DBflat/dbflat.html

    • Ich habe auf dem Server, auf dem das fertige Script laufen soll, leider keine root Rechte und muß deshalb Module als normaler Benutzer "installieren".

    Und auch dies sollte eigentlich kein Problem darstellen. Du kannst sämtliche Module auch "privat" installieren und mußt in deinem Perl-Script nur darauf hinweisen, wo _noch_ nach Modulen zu suchen ist.

    Auch dazu ein Link

    http://www.linux-magazin.de/Artikel/ausgabe/1999/11/Local/local.html

    Bye
    Timothy

    --
    Zwei Dinge im Leben kannst du nicht zurück holen. Den Pfeil, den du verschossen. Und das Wort, das du gesprochen.
    (alte indianische Weisheit)
    1. Hallo timothy,

      vielen Dank für die sehr interessanten Links. Ich denke mit dem vorgestellten Modulen müsste es klappen. Allerdings hatte ich bei einem lokalen Testlauf als User Probleme die Module zu installieren. Das Problem werde ich aber schon noch lösen - oder halt doch den Admin ganz lieb bitten ;-)

      Grüße,

      Peter

      1. Moin Moin !

        Du kannst Perl-Module auch für nur einen User installieren, das geht über das CPAN-Modul (hab ich allerdings dank root-Password noch nie gemacht):

        perl -MCPAN -e shell

        Vorher vielleicht mal die Doku zum CPAN-Modul lesen: http://www.perldoc.com/perl5.8.0/lib/CPAN.html#FAQ

        In den Scripten, die Deine "privaten" Module benötigen, ist dann noch eine Extra-Zeile fällig:

        use lib '/home/peter_kaufmann/lib/perl5'; # oder wo auch immer "Deine" Module liegen

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
        1. Hi

          Du kannst Perl-Module auch für nur einen User installieren, das geht über das CPAN-Modul (hab ich allerdings dank root-Password noch nie gemacht):

          perl -MCPAN -e shell

          Vorher vielleicht mal die Doku zum CPAN-Modul lesen: http://www.perldoc.com/perl5.8.0/lib/CPAN.html#FAQ

          hierfür gibt es einen interessanten Artikel:

          http://www.linux-magazin.de/Artikel/ausgabe/1997/10/CPAN/cpan.html

          Bye
          Timothy

          --
          Zwei Dinge im Leben kannst du nicht zurück holen. Den Pfeil, den du verschossen. Und das Wort, das du gesprochen.
          (alte indianische Weisheit)