Johnny: Neuer Start - neues Glück - diesmal aber richtig...

Hallo SelfForum,

ich beschäftige mich seit ca. 6 Monaten mit Perl, bin begeistert von dieser Sprache und habe damit ein Projekt aufgebaut, welches funktioniert, aber natürlich noch lauter Anfängerfehler beinhaltet.

Nun stehe ich vor einem Providerwechsel und wie man auch bei einem normalen Umzug den Dreck nicht in die neue Wohnung stellt, möchte ich dies zum Anlaß nehmen, das Projekt nocheinmal neu zu überdenken. Zum einen war das Datenmanagement sehr ineffektiv, zum anderen habe ich nur mit globalen Variablen und ohne use strict gearbeitet. Neben mir liegt mein frisch erworbenes Perl-Kochbuch, lucky I am...

Ja, Frage Nr. 1: Wenn ich im Root-Verzeichnis auf meinem Server ein Script aufrufe und in einem Unterordner befinden sich Module, z.B. Moo.pm, wie adressiere ich die dann richtig?

#!/usr/bin/perl -w use strict;           #jetzt neu ;-) use CGI::Carp qw(fatalsToBrowser); use CGI qw(:standard); use lib "/Unterordner"; use Unterordner:Moo;

Das geht so nicht... (?)

Wenn alle Module im selben Ordner sind, dann geht´s - aber das ist auch keine Lösung auf Dauer. Den tieferen Sinn eines "cgi-bin"-Verzeichnisses habe ich auch noch nicht verstanden, wo ich doch in jedem Verzeichnis Scripte ansprechen kann. Das cgi-bin wäre ja wohl der richtige Platz, all die Module abzuspeichern, aber wie spreche ich sie an?

Ich würde ja auch gerne die CPAN-Module nutzen, aber ich schnall das System einfach nicht. Wie kann ich die Dinger installieren? JA, ich habe Self HTML gelesen, nicht nur einmal. Auch das Kapitel über Module im Kochbuch kenne ich bald auswendig. Doch der Groschen fällt einfach nicht.

Also ich downloade ein Modul. Mein begrenztes Verständnis sagt mir, das ist Code, den tu ich in ein Verzeichnis, wie z.B. cgi-bin und dann kann ich den ansprechen. SelfHTML sagt mir ich muß das installieren per SSH-Shell-Zugriff. Wieso kann ich nicht einfach den Code auf meinen Server laden und ansprechen? (Die Frage ist zwar ungefähr so sinnvoll wie "Warum verstehe ich das nicht?", aber irgendwie muß ich mich dem Thema annähern)

Ich möchte z.B. gerne mit Manson arbeiten. Ich habe dieses Modul hier angepriesen bekommen als geniale Entwicklerumgebung und was ich bisher darüber gelesen habe, scheint mir auch alles sehr einfach und optimal für dynamische Webseiten zu sein.

Doch wie krieg ich den Vogel auf meinem Server gestartet? Ich habe letztendlich keinen eigenen Server, sondern nur gemieteten Webspace, aber diesmal bei ProfiHost - die wissen im Gegensatz zu Puretec wie man Service schreibt... :)

Ich habe auf der Manson-HP (mansonhq.com) gelesen, man könnte Manson auch ohne Installation seitens des Serveradmin nutzen (falls ich als Kunde doch kein König sein sollte) - so wie die anderen CPAN-Module auch.

Oder mache ich da jetzt einen Gedankenfehler und KANN ich mit gemietetem Webspace überhaupt gar keine CPAN-Module nutzen? Wenn das so ist, dann muß ich ja flugs auf einen eigenen Server umsteigen...

Wie steht es so schön im Kochbuch: "Sie müssen das Rad nicht neu erfinden." - und Perl sei was für Faule. Doch ich bin genau dabei gerade, habe eigene HTML-Ausgabe-Routinen, mein eigenes Datenmanagemant-System, meine eigene Email-Engine, usw. programmiert, nur weil ich nicht verstehe, wie ich mit Modulen richtig arbeite.

Dazu kommt noch ein zweiter Punkt: Um das richtige CPAN-Modul zu finden, muß ich doch erstmal forsten, mich durch perldocs -hab ich noch nie begriffen- auf englisch -was nicht meine Motherspeake ist- lesen und dann habe ich ein Modul gefunden. Ob es das macht, was ich will, ist mir noch unklar. Ich installiere das Teil (so mir denn klar werde, wie das vonstatten geht), dann muß ich mich erstmal mit der Funktionalität beschäftigen (wie spreche ich es richtig an, was für Flags muß ich setzen, etc.) - um dann am Ende eventuell festzustellen, daß es doch nicht das Richtige ist und dann forste ich weiter nach einem geeigneteren Modul?

Bis ich damit fertig bin, habe ich das Problem auf meine dilettantische und pragmatische Art doch schon gelöst - was allerdings nicht der Stil ist, den ich wirklich programmieren möchte. Bisher geht das noch, doch die z.Zt. mehreren Hundert Besucher täglich werden sicherlich in Kürze auf Tausend täglich und mehr steigen - und ich möchte zusätzlich dynamische Inhalte, wie z.B. mehrere Sprachen, auf meine Webseite bringen. Die Daten werden immer wertvoller - die Sicherheit damit immer relevanter...

Da komme ich mit meinem bisherigen Stil nicht mehr allzuweit. Um einen versierten Programmierer zu beauftragen, fehlt momentan noch das Geld - es ist zwar schon Geld da, aber wohl nicht genug um das komplette Projekt neu programmieren zu lassen (und kein guter Programmierer wäre bereit, meinen Code zu verbessern ggg).

Abschließende Frage: Ich hätte gerne eine Vorstellung davon, wieviel ein Programm kostet, wie man soetwas überhaupt abrechnet und ob die Möglichkeit besteht, nur die performance- oder sicherheits-relevanten Teile des Codes programmieren zu lassen. Den Rest bastele ich dann selber dazu - wobei ich sicherlich einiges an sauberem Stil dadurch lernen kann.

Geld sparen durch Mitmachen - das galt früher bei den Umzügen, die ich gemacht habe. Doch inwieweit ist das auf Programmieren übertragbar? Und... wo finde ich gute Perl-Programmierer (...wenn nicht hier)?

Jau, das waren jetzt eine Menge Fragen, aber ich will halt viel wissen... ;-) Muchas Gracias, JOhnnY

  1. Hi Jhonny,

    hier mal zwei Links, die einen Teil Deiner Fragen beantworten sollten:

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

    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)
  2. Moin moin!

    Ja, Frage Nr. 1: Wenn ich im Root-Verzeichnis

    Aehm... Du meinst sicher das Document root Deines Webservers. Das ist *nicht* das Root-Verzeichnis des Verzeichnisbaums.

    auf meinem Server ein Script aufrufe und in einem Unterordner befinden sich Module, z.B. Moo.pm, wie adressiere ich die dann richtig?

    #!/usr/bin/perl -w
    use strict;           #jetzt neu ;-)
    use CGI::Carp qw(fatalsToBrowser);
    use CGI qw(:standard);
    use lib "/Unterordner";
    use Unterordner:Moo;

    Das geht so nicht... (?)

    In der Tat, so schonmal gar nicht. Perl arbeitet auf Systemebene und hat von Deiner Webserverumgebung erstmal keine Ahnung. Was ueber's Web als /Unterordner erreichbar ist (wenn da Module drin liegen, sollte das aber besser nicht so sein!), ist aus Sicht des Dateisystems ein viel laengerer Pfad, z.B. /home/www/dein-webspace/Unterordner. Perl arbeitet mit letzterem. /Unterordner ist fuer Perl (wie fuer jedes andere Programm) ein Unterverzeichnis des Root-Verzeichnis des gesamten Dateisystems, genauso wie /home auch eines ist.

    Wenn alle Module im selben Ordner sind, dann geht´s

    Das ist aber auch eher Glueck. Siehe folgendes.

    • aber das ist auch keine Lösung auf Dauer. Den tieferen Sinn eines "cgi-bin"-Verzeichnisses habe ich auch noch nicht verstanden, wo ich doch in jedem Verzeichnis Scripte ansprechen kann.

    Scripte nur in cgi-bin zu haben hat Vorteile in der Sicherheit.

    Das cgi-bin wäre ja wohl der richtige Platz, all die Module abzuspeichern, aber wie spreche ich sie an?

    Das ist nicht ganz einfach. Prinzipiell wird der "Unterordner", wie Du das oben genannt hast, mit "./Unterordner" angesprochen ("." steht fuer's aktuelle Verzeichnis). Die entsprechende Anweisung waere also
      use lib "./Unterordner";

    Das Problem ist, dass das "aktuelle Verzeichnis" beim Aufruf ueber CGI nicht definiert ist. Meistens ist es das Verzeichnis, in dem das CGI-Script liegt, aber manchmal auch nicht. Deswegen muss man den kompletten Pfad zum Unterordner angeben, also
      use lib "/home/www/dein-webspace/Unterordner";

    Wie Du unschwer erkennst, musst Du dann aber das Script jedesmal aendern, wenn Du es auf einer anderen Maschine installierst, wo die Pfade anders sind. Man kann da mit dem Standard-Modul FindBin abhelfen, welches die Location Deines Scripts alleine findet. Das genaue Konstrukt hab ich grad nicht im Kopf, vielleicht kann das mal jemand anderes posten. Oder im Archiv suchen.

    Ich würde ja auch gerne die CPAN-Module nutzen, aber ich schnall das System einfach nicht. Wie kann ich die Dinger installieren? JA, ich habe Self HTML gelesen, nicht nur einmal. Auch das Kapitel über Module im Kochbuch kenne ich bald auswendig. Doch der Groschen fällt einfach nicht.

    Also ich downloade ein Modul. Mein begrenztes Verständnis sagt mir, das ist Code, den tu ich in ein Verzeichnis, wie z.B. cgi-bin und dann kann ich den ansprechen. SelfHTML sagt mir ich muß das installieren per SSH-Shell-Zugriff. Wieso kann ich nicht einfach den Code auf meinen Server laden und ansprechen? (Die Frage ist zwar ungefähr so sinnvoll wie "Warum verstehe ich das nicht?", aber irgendwie muß ich mich dem Thema annähern)

    Mit einfachen Perl-only-Modulen geht das durchaus. Viele Module sind aber in C geschrieben und stellen ein Perl-Interface bereit. Solche Module muss man erst 'make'n (compilieren und linken).

    Bevor man Module auf dem Server installiert, sollte man es besser bei sich schonmal erfolgreich getan haben. Ist allerdings problematisch, wenn Du nur Windows zur Verfuegung haben solltest, weil es dort viele grundlegende Standardtools nicht gibt.

    Um Dir in der Frage zu helfen, solltest Du vielleicht erstmal genauer sagen, wie weit Du schon bist, also an welcher Stelle es hakt.

    Ich möchte z.B. gerne mit Manson arbeiten. Ich habe dieses Modul hier angepriesen bekommen als geniale Entwicklerumgebung und was ich bisher darüber gelesen habe, scheint mir auch alles sehr einfach und optimal für dynamische Webseiten zu sein.

    Meinst Du HTML::Mason?

    Doch wie krieg ich den Vogel auf meinem Server gestartet? Ich habe letztendlich keinen eigenen Server, sondern nur gemieteten Webspace, aber diesmal bei ProfiHost - die wissen im Gegensatz zu Puretec wie man Service schreibt... :)

    Ich habe auf der Manson-HP (mansonhq.com) gelesen, man könnte Manson auch ohne Installation seitens des Serveradmin nutzen (falls ich als Kunde doch kein König sein sollte) - so wie die anderen CPAN-Module auch.

    Das kann man mit den meisten Modulen, allerdings musst Du dafuer auf dem Server die entsprechenden Werkzeuge zur Verfuegung haben. Wenn Du mit SSH drin bist und
      which gcc as make ld install
    Dir keine Fehlermeldungen, sondern die Pfade zu den einzelnen Werkzeugen zeigt, dann solltest Du gute Chancen haben.

    Wie steht es so schön im Kochbuch: "Sie müssen das Rad nicht neu erfinden." - und Perl sei was für Faule. Doch ich bin genau dabei gerade, habe eigene HTML-Ausgabe-Routinen, mein eigenes Datenmanagemant-System, meine eigene Email-Engine, usw. programmiert, nur weil ich nicht verstehe, wie ich mit Modulen richtig arbeite.

    Das waere natuerlich nicht so gut, vor allem, weil man da einen Haufen Fehler und Sicherheitsluecken einbauen kann.

    Dazu kommt noch ein zweiter Punkt: Um das richtige CPAN-Modul zu finden, muß ich doch erstmal forsten, mich durch perldocs -hab ich noch nie begriffen- auf englisch -was nicht meine Motherspeake ist-

    'native language' waere der richtige Begriff. ;-)

    lesen und dann habe ich ein Modul gefunden. Ob es das macht, was ich will, ist mir noch unklar. Ich installiere das Teil (so mir denn klar werde, wie das vonstatten geht), dann muß ich mich erstmal mit der Funktionalität beschäftigen (wie spreche ich es richtig an, was für Flags muß ich setzen, etc.) - um dann am Ende eventuell festzustellen, daß es doch nicht das Richtige ist und dann forste ich weiter nach einem geeigneteren Modul?

    Ja, das ist so ein Problem. Am besten mal hier oder in einer Perl-Mailingliste fragen, welches Modul sie fuer Dein Problem empfehlen.

    Abschließende Frage: Ich hätte gerne eine Vorstellung davon, wieviel ein Programm kostet, wie man soetwas überhaupt abrechnet und ob die Möglichkeit besteht, nur die performance- oder sicherheits-relevanten Teile des Codes programmieren zu lassen. Den Rest bastele ich dann selber dazu - wobei ich sicherlich einiges an sauberem Stil dadurch lernen kann.

    Kommt drauf an. Groessere Projekte lassen sich meist sinnvoll modularisieren, wobei Du dann Teile outsourcen kannst.

    Wieviel ein Programm kostet kommt drauf an, wer die Frage stellt. ;-)

    Geld sparen durch Mitmachen - das galt früher bei den Umzügen, die ich gemacht habe. Doch inwieweit ist das auf Programmieren übertragbar? Und... wo finde ich gute Perl-Programmierer (...wenn nicht hier)?

    Es gibt immer mal Jobangebote hier. Mach einfach ein entsprechendes Posting. Oder schreib an die EMail-Adressen von Studenten, die Deine Fragen beantworten (wie mich z.B.). ;-)

    Jau, das waren jetzt eine Menge Fragen, aber ich will halt viel wissen... ;-)

    Sehr lobenswert. ;-)

    So long

    --
    Wer andern eine Bratwurst brät, der hat ein Bratwurst-Bratgerät.
    1. Hi

      Man kann da mit dem Standard-Modul FindBin abhelfen, welches die Location Deines Scripts alleine findet. Das genaue Konstrukt hab ich grad nicht im Kopf, vielleicht kann das mal jemand anderes posten. Oder im Archiv suchen.

      <snippet>--------------------------------------------------

      8.84 FindBin

      Finds the full path to a script's bin directory, letting you use relative paths to that directory without needing to know the actual location:

      use FindBin;
      use lib "$FindBin::Bin/../lib";

      or:

      use FindBin qw($Bin);
      use lib "$Bin/../lib";

      FindBin exports the following variables:

      $Bin

      Path to bin directory from which script was invoked.
      $Script

      Basename of script from which Perl was invoked.
      $RealBin

      $Bin with all links resolved.
      $RealScript

      $Script with all links resolved.

      If you invoke Perl with the -e option or read the Perl script from STDIN, then FindBin sets both $Bin and $RealBin to the current directory.

      </snippet>-------------------------------------------------------------

      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)
    2. Hi Calocybe,

      Mit einfachen Perl-only-Modulen geht das durchaus. Viele Module sind aber in C geschrieben und stellen ein Perl-Interface bereit. Solche Module muss man erst 'make'n (compilieren und linken).

      Ahja, da klingelte der erste Groschen...

      Bevor man Module auf dem Server installiert, sollte man es besser bei sich schonmal erfolgreich getan haben. Ist allerdings problematisch, wenn Du nur Windows zur Verfuegung haben solltest, weil es dort viele grundlegende Standardtools nicht gibt.

      ich hab nur Windows - denke zwar schon länger über Linux als die wohl bessere Alternative nach, doch das werde ich erst bei der nächsten Aufrüstung meines PCs realisieren.

      Das kann man mit den meisten Modulen, allerdings musst Du dafuer auf dem Server die entsprechenden Werkzeuge zur Verfuegung haben. Wenn Du mit SSH drin bist und
        which gcc as make ld install
      Dir keine Fehlermeldungen, sondern die Pfade zu den einzelnen Werkzeugen zeigt, dann solltest Du gute Chancen haben.

      Jau, ich hab mir ein SSH-Proggy installiert, verbunden, die Anfrage ergibt folgendes:

      /usr/bin/gcc
      /usr/bin/as
      /usr/bin/make
      /usr/bin/ld

      Dazu kommt noch ein zweiter Punkt: Um das richtige CPAN-Modul zu finden, muß ich doch erstmal forsten, mich durch perldocs -hab ich noch nie begriffen- auf englisch -was nicht meine Motherspeake ist-
      'native language' waere der richtige Begriff. ;-)

      sollte ein Scherz sein... :)

      Ja, das ist so ein Problem. Am besten mal hier oder in einer Perl-Mailingliste fragen, welches Modul sie fuer Dein Problem empfehlen.

      kannst Du eine Mailingliste empfehlen (am liebsten in deutsch)?

      Wieviel ein Programm kostet kommt drauf an, wer die Frage stellt. ;-)

      Welche Fragensteller sind denn am günstigsten? ;)

      Muchas Gracias
      JOhnnY

      1. Hi Johnny!

        ich hab nur Windows - denke zwar schon länger über Linux als die wohl bessere Alternative nach, doch das werde ich erst bei der nächsten Aufrüstung meines PCs realisieren.

        Zum Glueck gibt's Bootmanager, da kann man ein Unix hochfahren, wenn mans braucht, und Windows, wenn man den anderen Stuff machen will, weil man ja nicht gleich komplett umsteigen muss. Oder Knoppix, das komplett von CD laufende Linux (http://www.knopper.net/knoppix/).

        'native language' waere der richtige Begriff. ;-)
        sollte ein Scherz sein... :)

        Oops. *g*

        Ja, das ist so ein Problem. Am besten mal hier oder in einer Perl-Mailingliste fragen, welches Modul sie fuer Dein Problem empfehlen.
        kannst Du eine Mailingliste empfehlen (am liebsten in deutsch)?

        Naja, ich kenne die perl-anfaenger-Liste, weiss aber nicht, ob Dir da jede Frage diesbezueglich beantworten koennen. Im Linkverzeichnis http://aktuell.de.selfhtml.org/links/foren.htm findest Du auch andere Anlaufpunkte. Aber Du kannst ja wie gesagt auch hier fragen.

        Wieviel ein Programm kostet kommt drauf an, wer die Frage stellt. ;-)
        Welche Fragensteller sind denn am günstigsten? ;)

        Ich meinte damit, dass ein Programmierer halt Geld kriegt, er aber seinen Chef schon mehr kostet, weil ja noch einige andere Ausgaben anfallen. Den Kunden kommt das ganze dann noch teurer, weil ja auch was verdient werden soll. Und wenn das ganze noch ueber mehrere Weiterverkaufs-Level laeuft, wie es Kaufleute anscheinend ziemlich lustig finden, verdienen halt noch mehr Leute mit. Naja, und dann kann man sich die Frage stellen, wer in der ganzen Kette produktiv gearbeitet hat und wer nur mitverdient, aber das ist ein anderes Thema...

        So long

        --
        Wer andern eine Bratwurst brät, der hat ein Bratwurst-Bratgerät.
        1. Hi Calocybe,

          Naja, ich kenne die perl-anfaenger-Liste, weiss aber nicht, ob Dir da jede Frage diesbezueglich beantworten koennen. Im Linkverzeichnis http://aktuell.de.selfhtml.org/links/foren.htm findest Du auch andere Anlaufpunkte. Aber Du kannst ja wie gesagt auch hier fragen.

          gut, ich frage:

          Ich habe mehrere plain-text-Datenbanken, auf die ich mittels selbstgeschriebener Routinen zugreife. Dieser Zugriff z.B. sollte keine selbstgebastelte Lösung sein. Ich habe Daten in folgendem Format:

          ID-Nr.,email,vorname,name,etc,etc,etc

          Nun suche ich ein Modul, welches anhand der ID-Nr. die Daten als Hash zurückliefert, bzw. welches geänderte Daten zurückschreiben kann. Meine bisherige Lösung weist trotz flock noch zu viele Sicherheitslöcher auf und ist außerdem arg langsam.

          Eine andere Sache ist das Anzeigen von Webseiten. Ich habe mir eine Ausgaberoutine gebastelt und habe Templates, die ich dann ausgeben lasse. Funktioniert zwar auch, aber das würde ich auch lieber von einem Modul lösen lassen.

          Dritte Sache ist das Versenden von Mails - mit Anhang und von verschiedenen Absende-Adressen aus an ziemlich viele Empfänger (individueller Newsletter). Das Kochbuch schlägt Mail::Mailer vor - doch wenn ich bei CPAN schaue, erschlagen mich ein dutzend verschiedene Module, und keines davon heißt einfach nur Mailer. Mein Hirn antwortet darauf mit einem "Internal Information Overflow Error" - ich kann unmöglich alle Module installieren und dann zum Test vergleichen. Kann ich mein Kochbuch nicht benutzen, oder was mache ich falsch? Meine bisherige sendmail-Lösung funktioniert zwar, aber optimal ist das nicht...

          Ich meinte damit, dass ein Programmierer halt Geld kriegt, er aber seinen Chef schon mehr kostet, weil ja noch einige andere Ausgaben anfallen. Den Kunden kommt das ganze dann noch teurer, weil ja auch was verdient werden soll. Und wenn das ganze noch ueber mehrere Weiterverkaufs-Level laeuft, wie es Kaufleute anscheinend ziemlich lustig finden, verdienen halt noch mehr Leute mit. Naja, und dann kann man sich die Frage stellen, wer in der ganzen Kette produktiv gearbeitet hat und wer nur mitverdient, aber das ist ein anderes Thema...

          ahso. Ja, ok - dann bin ich wohl ein günstiger Fragesteller... :) Ich werde darüber nachdenken. Vorerst möchte ich gern einmal selbst das Erfolgserlebnis eines installierten und laufenden Moduls erleben... <vorfreu>

          Muchas Gracias JOhnnY

          1. Re!

            Nun suche ich ein Modul, welches anhand der ID-Nr. die Daten als Hash zurückliefert, bzw. welches geänderte Daten zurückschreiben kann. Meine bisherige Lösung weist trotz flock noch zu viele Sicherheitslöcher auf und ist außerdem arg langsam.

            Klingt nach dem Modul DBI in Verbindung mit DBD::CSV. (DBI stellt eine einheitliche Schnittstelle fur DB-Zugriff, DBD enthaelt quasi verschiedene "Datenbanktreiber".)

            Eine andere Sache ist das Anzeigen von Webseiten. Ich habe mir eine Ausgaberoutine gebastelt und habe Templates, die ich dann ausgeben lasse. Funktioniert zwar auch, aber das würde ich auch lieber von einem Modul lösen lassen.

            Wolltest Du nicht HTML::Mason probieren? Wird eigentlich oft genannt in diesem Zusammenhang. Gut, das muss nichts heissen. (Nicht alle Module sind brauchbar, nur weil sie auf CPAN liegen.) Bin selber noch nicht dazu gekommen, es mit anzusehen. Bisher hatte ich nur selbstgeschriebenes eingesetzt, aber das stammt noch aus der Zeit, als solche Module bei CPAN noch nicht verfuegbar waren.

            Dritte Sache ist das Versenden von Mails - mit Anhang und von verschiedenen Absende-Adressen aus an ziemlich viele Empfänger (individueller Newsletter).

            Mail mit MIME::Lite zusammenbauen und mit Net::SMTP verschicken. Das funktioniert dann auch OS-unabhaengig, da Du sendmail nicht mehr brauchst. (Musst aber einen SMTP-Server angeben.) Anschauungsmaterial fuer die Benutzung von Net::SMTP kann ich Dir notfalls schicken (man muss naemlich wenigstens ein bisschen was ueber SMTP wissen).

            ahso. Ja, ok - dann bin ich wohl ein günstiger Fragesteller... :) Ich werde darüber nachdenken. Vorerst möchte ich gern einmal selbst das Erfolgserlebnis eines installierten und laufenden Moduls erleben... <vorfreu>

            In dem einen Link von timothy wird die Vorgehensweise imho ganz gut beschrieben. Wie kommst Du damit weiter?

            So long

            --
            Wer andern eine Bratwurst brät, der hat ein Bratwurst-Bratgerät.
            1. Hi Calocybe,

              In dem einen Link von timothy wird die Vorgehensweise imho ganz gut beschrieben. Wie kommst Du damit weiter?

              Danke der Nachfrage! :) Ich habe das Modul downloaden können, entpacken können, dann wollte ich es make´n - wobei es versucht hat, sich in den Perl-Root-Pfad einzutragen, was nicht genehmigt ist, weil ich keinen eigenen Server habe. Die Nachfrage bei meinem Provider ergab, daß es irgendwo in der Readme-Datei der Module einen Hinweis gibt, wie sich das Modul nur in meinen eigenen Perl-Bereich installiert - bin jetzt auf der Suche nach solchen Hinweisen, wurde aber noch nicht fündig.

              Mason möchte mod_perl, was mein Provider nicht zuläßt aufgrund möglicher Sicherheitslöcher. Irgendwie soll es auch anders gehen, so ganz habe ich das noch nicht verstanden ("Although Mason is most commonly used in conjunction with mod_perl, the APIs are flexible enough to use in any environment. Below we describe the two most common alternative environments, CGI and standalone scripts."). Doch auch bei der Mason-Installation trat der o.a. Fehler auf, insofern muß ich das zuerst lösen.

              Wobei ich mir auch überlegt habe, daß ich, was ich unter Mason verstehe, ja auch umdrehen kann und statt .htm-Seiten rufe ich .pl-Seiten auf, also Scripte, die dann HTML-Templates enthalten. Letztendlich habe ich dann auch Perl und HTML zusammen in einem Dokument (bei Mason "Component") - und das ist die Funktionalität oder Entwicklungsumgebung, die ich mir wünsche. Mason kann sicherlich noch viel viel mehr, 1000 Dinge, die ich wohl auch mittel- langfristig nicht nutzen werde.

              Ich will ja nur z.B. meine Seite in verschiedenen Sprachen anbieten ohne jeweils für jede Sprache einen neuen Ordner anzulegen. Also ein Flag "de" oder "en" oder "fr" - und je nach Flag gibt das Script die Seite aus. Dann muß das Flag irgendwie weitergegeben werden, vielleicht mit Session-IDs, womit ich mich aber noch nicht näher beschäftigt habe. Andererseits begebe ich mich damit wieder auf den gewohnten Pfad von "Selberbasteln, weil´s schneller geht" - quick´n´dirty - und das will ich ja gerade NICHT mehr... <seufz>

              Ich muß jetzt erstmal als nächstes herausfinden, wie ich Module nur in meinen Pfad installiere - can u help?

              Danach freue ich mich, mein erstes Modul zu nutzen, klingt ja gut mit DBD::CSV und MIME::Lite und Net::SMTP. Letzteres habe ich schon einmal fast hinbekommen. Hier im Forum wird von sendmail immer abgeraten, so daß ich Net::SMTP zu nutzen versucht habe. Letztendlich bin ich damals an der auth-Funktion gescheitert, die sei nicht "implementet" hieß es. Ich dachte das würde mit meinem damaligen Provider zusammenhängen und habe es dann doch mit sendmail gemacht. Ist es denn mit Net::SMTP möglich, Mails mit verschiedenen Absende-Email-Adressen zu verschicken, oder ist das wie bei meinem Email-Client, daß ich dann für jede Absende-Adresse eine neue Mailbox einrichten muß?

              Alles in allem erhellt sich mir die Modulwelt langsam, aber unausweichlich. Es ist im Prinzip wie bei Perl: Zuerst starre ich wochenlang stöhnend auf lauter wirre Zeichen, irgendwann ergeben sich erste Sinnfetzen und nach und nach entsteht ein immer schöneres Bild - am Ende steht dann die Mächtigkeit der Möglichkeiten - sozusagen "die Energie des Verstehens", wie SelfHTML so schön überschrieben ist... Und dann macht es richtig Spaß... ;)         (bis die nächste Herausforderung ruft und wieder nur wirre Zeichen vor mir stehen... ;)
              Muchas Gracias
              JOhnnY

              1. Re!

                Danke der Nachfrage! :) Ich habe das Modul downloaden können, entpacken können, dann wollte ich es make´n - wobei es versucht hat, sich in den Perl-Root-Pfad einzutragen, was nicht genehmigt ist, weil ich keinen eigenen Server habe. Die Nachfrage bei meinem Provider ergab, daß es irgendwo in der Readme-Datei der Module einen Hinweis gibt, wie sich das Modul nur in meinen eigenen Perl-Bereich installiert - bin jetzt auf der Suche nach solchen Hinweisen, wurde aber noch nicht fündig.

                Na, das stand eigentlich in dem einen Artikel:
                  perl Makefile.PL LIB=/home/mike/perl_modules
                  make
                  make test
                  make install

                Auf das LIB kommt's an.
                Wenn das geklappt hat noch
                  export PERL5LIB=/home/mike/perl_modules
                setzen (in der .bash_login oder .profile oder was immer Deine Shell fuer Login-Scripts hat), damit perldoc dann die Module findet und die PODs dazu anzeigen kann.

                Ich will ja nur z.B. meine Seite in verschiedenen Sprachen anbieten ohne jeweils für jede Sprache einen neuen Ordner anzulegen. Also ein Flag "de" oder "en" oder "fr" - und je nach Flag gibt das Script die Seite aus.

                Ach so, das ist alles, was Du willst? Na das geht doch viel schoener!
                HTTP Content Negotiation ist das Zauberwort. Wo man bisher eine seite.html hatte, legt man die Dateien seite.de.html, seite.en.html und seite.fr.html an. In einer .htaccess aktiviert man
                  Options +Multiviews
                  LanguagePriority de en fr
                Schon sucht Apache fuer jeden Browser die passende Seite raus. Welche die passende Seite ist, legt der Benutzer in den Einstellungen seines Browsers fest.
                Links auf die Seite werden dann nicht mehr mit HREF="seite.html" gesetzt, sondern mit HREF="seite" ohne Endung. Will man im Link die Zielsprache festlegen (z.B. Language switcher), schreibt man HREF="seite.fr" .
                Das geile daran ist, dass man die Dateien auch zu seite.de.php oder seite.de.pl umbenennen kann (sofern der Server dann entsprechend konfiguriert ist), und alle Links funktionieren ohne Aenderung weiter. So wird WWW gemacht!
                Ausfuehrlich gibt's das ganze auf http://aktuell.de.selfhtml.org/artikel/server/alt-http/index.htm.

                Letztendlich bin ich damals an der auth-Funktion gescheitert, die sei nicht "implementet" hieß es. Ich dachte das würde mit meinem damaligen Provider zusammenhängen und habe es dann doch mit sendmail gemacht.

                auth? Weiss ich jetzt gar nicht. Hatte das nur von innerhalb eines Firmennetzwerkes verwendet, da war keine auth notwendig. Der SMTP-Server war offen fuer alle, ist ja kein Problem im Intranet.

                Ist es denn mit Net::SMTP möglich, Mails mit verschiedenen Absende-Email-Adressen zu verschicken, oder ist das wie bei meinem Email-Client, daß ich dann für jede Absende-Adresse eine neue Mailbox einrichten muß?

                Net::SMTP verschickt nur Text, ohne dass es wuesste, was dieser Text enthaelt. Den From-Header kannst Du also frei waehlen. Es gibt allerdings einige Provider, die ihren SMTP-Server so konfiguriert haben, dass die From-Adresse mit ihrer Domain uebereinstimmen muss. Damit soll Spam mit falscher Absenderadresse verhindert werden. Du musst das also mit dem Provider klaeren.

                So long

                --
                Wer andern eine Bratwurst brät, der hat ein Bratwurst-Bratgerät.
              2. Hi Johnny,

                schau Dir bitte auch einmal unbedingt das Modul Mail (Sender und POP3Client) auf dem CPAN an. Das vereinfacht das Mailhandling gewaltig.

                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)