Jörg Dutschke: ActivePerl - noch ne Frage

Hi !

Weiter unten sind ja schon ein paar Postings zu lesen, die sich mit ActivePerl beschäftigen.
Ok .... ich habe weitergeforscht.
In der CGI.pm stehen <TABLE>,<TR>,<TD> als unterstützte Tags drin. Prima wunderbar.
Für <form>, <html> .. existieren auch Endtags end_form, end_html .....
Für viele weitere HTML-Tags nicht (vermutlich weil die nicht zwingend abgeschlossen sein müssen).

Für den Table-Tag gibts das nicht. Folglich muß doch ein Weg existieren, trotzdem eine Table aufzubauen. Oder irre ich da? Sonst bräuchte es ja nicht die <table>-Unterstützung.

Nun denn ..... Wenn ich ein Array habe, welches ich derart auslesen mag, daß pro Arrayelement eine Reihe und eine Spalte angelegt wird. Wie soll das unter o.g. Umständen funktioneren?
Die Ausgabe soll dabei nicht in eine Datei erfolgen, sondern über ein z.B. $query = new CGI  mit anschließendem print $query->....., wo die Ausgabe offenbar direkt an den Browser geht. Aber vielleicht irre ich auch hier.

Hat jemand Erfahrung damit?

Thx ....
Jörg

  1. Ich habe das mal getestet ....

    Mit
    print $query->table;
    print $query->Tr;
    print $query->th;

    werden entsprechen HTML-Tags erzeugt ... Tolle Geschichte, das.

    Warum kann ich die nicht einfach wieder zu machen?

    Wie kann ich einfache Strings an das Query-Objekt senden?
    print $query->('test'); bringt z.B. nix ....
    Erst wenn ich HTML-Tags nutze wie z.B. in
             print $query->h5('Hallo Welt');
    klappt es ....

    Ok ... daran erkennt man wahrscheinlich schon den Newbie auf dem Gebiet. *lach*

    Aber kann mir bitte einer weiterhelfen?

    Ciao
    Jörg

  2. hi!

    Weiter unten sind ja schon ein paar Postings zu lesen, die sich mit ActivePerl beschäftigen.
    Ok .... ich habe weitergeforscht.

    Anscheinend nicht sorgfältig genug. Hast du dir schonmal die Mühe gemacht, den Gebrauch dieses Moduls zu verstehen oder wenigstens die Dokumentation zu lesen?

    Was wäre der Vorteil, wenn das Modul einfach für jedes HTML-Tag eine Funktion zur Verfügung stellen würde, um das Tag auszugeben? Dann könnte man genausogut jedes HTML-Tag direkt mit print "<table>" etc. ausgeben.

    Der Zweck des Moduls ist, dass der Benutzer eben das nicht mehr machen muss. Stattdessen wird zb. auch das Schließen der Tags automatisch übernommen. Um das sinnvoll zu nutzen, muss man natürlich überhaupt erstmal verstehen, wie die Funktionen zu verwenden sind.

    Im folgenden ein kleines Beispiel, das dein Problem ansatzweise lösen sollte und demonstriert, wie es gemacht wird. Und danach verschone uns bitte mit deinen Fragen in dieser Sache...

    === cut ===
    #!/usr/bin/perl
    use CGI;

    print CGI->table(
      CGI->Tr(
        CGI->td("Erste Zeile, erste Spalte"),
        CGI->td("Erste Zeile, zweite Spalte")
      ),
      CGI->Tr(
        CGI->td("Zweite Zeile, erste Spalte"),
        CGI->td("Zweite Zeile, zweite Spalte")
      )
    );
    === cut ===

    bye, Frank!

    1. Danke erstmal Frank. Dieses Konstrukt habe ich auch schon gesehen und ich denke auch verstanden. Das Prob was ich noch habe ist, daß ich die Zeilen und Spalten der Table innerhalb einer While-Schleife anlegen müßte ... was ich noch nicht so richtig raffe.

      Aber an Deinem Ton erkenne ich, daß Du in letzter Zeit wohl als so ne Art Ordnungshüter fungieren magst.
      Es sind ganz normale Fragen von Anfängern (inpunkto Perl auch bin auch in Newbie) und eine Community wie dieses Forum ist da der ideale Kommunikationsraum, weil ich hier auch Experten treffen kann, die mir sicherlich weiterhelfen können.
      Es gibt einen weisen Spruch: Es gibt keine dumme Fragen, nur dumme Antworten.
      Ich möchte mich hier nicht als "Betroffenheitsbeauftragter" melden, sondern nur meine einfache und vielleicht unwichtige Meinung kundtun.

      Entschuldige bitte, falls Du dieses Posting wieder verreißen magst .... Es gehört nicht hier her.

      Wir sollten uns wieder der eigentlichen Sache zuwenden. Ok?

      Ciao
      Jörg

      1. Hallo

        Aber an Deinem Ton erkenne ich, daß Du in letzter Zeit wohl als so ne Art Ordnungshüter fungieren magst.

        Naja, etwas kurz angebunden sind wir alle mal.

        Es gibt einen weisen Spruch: Es gibt keine dumme Fragen, nur dumme Antworten.

        So weise finde ich den Spruch nicht. Er wird leider meistens von Leuten gebracht, die dumme Fragen stellen. Klar gibt es dumme Antworten, aber die bekommt man nach meiner Erfahrung meistens auf dumme Fragen. Jetzt will ich Dir nicht den Vorwurf einer dummen Frage machen, nur mal sagen, dass es eben doch welche gibt und was ich darunter verstehe. Um eine dumme Frage handelt es sich, wenn jemand eine schnelle Antwort auf eine schnelle Frage haben will, die gar nichts mit dem Thema zu tun hat. Das weiss der Frager aber nicht, denn dafuer haette er sich ja mit dem Thema beschaeftigen muessen. Haette er dies getan, wuesste er aber, dass das eine dumme Frage ist und dass sie voellig unpassend ist, und er wuerde sie gar nicht stellen.
        Beispiel: Ich habe ein einfaches Counterscript geschrieben, das auf einigen unserer bei Intranetseiten die Zugriffszahl anzeigt. Dann belomme ich einen Anruf, wo ein Mensch, der ein paar Ebenen ueber mir steht, sagt, er wolle sowas fuer ein paar selbsterstellte HTML-Seiten haben, die er auf seiner Platte hat und ein paar andere Leute greifen ueber gemountete Laufwerke noch drauf zu. Ich sag ihm also, das geht nicht. Und jetzt die dumme Frage: Wieso? Ich hab doch auch so eine Uhr, die dauernd weiterzaehlt (sowas wie <../../tfcaa.htm>)! Na toll, was soll man darauf antworten? Der Mann hatte doch keine Ahnung, wovon er sprach. Er hatte nur gesehen, ooch toll, blinkt, bewegt sich, und das auf meinem Rechner, da wird doch so ein Counter kein Problem sein. Naja, ich hab ihm dann auch ne dumme Antwort gegeben. Ich habe ihm naemlich genau erklaert, warum das nicht geht und war mir natuerlich im klaren darueber, dass er mit den ganzen Begriffen wie Webserver, CGI-Schnittstelle, Javascript ueberhaupt nichts anfangen konnte (deshalb war es eine dumme Antwort, obwohl sie voellig korrekt war). Naja, das ist eben das dumme am Fragen, wenn Leute gross rumposaunen, nicht wissen, wovon sie reden, und dann Fragen stellen, zu denen Sie die Antwort ganz leicht wissen koennten.
        Wieviel von dem ganzen auf Dich zutrifft, solltest Du selbst entscheiden. Nur soviel: Das ist nicht persoenlich fuer Dich gedacht, sondern eher allgemein.

        Tja und Deine while-Schleife... Weiss nicht so recht, was Du damit meinst. Vielleicht etwas in dieser Art?

        while (<daten datensaetze vorhanden>) {
            $z1s1 = <Erste Zeile, erste Spalte>;          # Begriffe in < > immer entsprechend ersetzen
            $z1s2 = <Erste Zeile, zweite Spalte>;
            $z2s1 = <Zweite Zeile, erste Spalte>;
            $z2s2 = <Zweite Zeile, zweite Spalte>;

        print CGI->table(
              CGI->Tr(
                CGI->td($z1s1),
                CGI->td($z1s2)
              ),
              CGI->Tr(
                CGI->td($z2s1),
                CGI->td($z2s2)
              )
            );

        <gehe zu naechstem DS>;
        }

        Calocybe, der jetzt offline geht und Urlaub macht.
        Bis dann dann ... in anderthalb Wochen

        1. Hallo Calobyte

          schoenen Urlaub und danke fuer das Posting - ich schliesse mich voll an. Frueher haette ich auch gesagt, naja, ist was dran an dem Allgemeinplatz, wonach es nur dumme Antworten, aber keine dumme Fragen gibt. Mittlerweile sehe ich es so: es gibt ungefaehr 50% dumme Fragen und 50% dumme Antworten. Man muesste halt mal einen knackigen Spruch daraus machen ;-)

          viele Gruesse
            Stefan Muenz

          1. Hallo Stefan!

            »»Mittlerweile sehe ich es so: es gibt ungefaehr 50% dumme Fragen und 50% dumme Antworten. Man muesste halt mal einen knackigen Spruch daraus machen ;-)

            "Dumm ist wer dummes tut"; Forrest Gump

            Grüße
            Thomas

        2. Hallo Calocybe!

          ... Beispiel: Ich habe ein einfaches Counterscript geschrieben, das auf einigen unserer bei Intranetseiten die Zugriffszahl anzeigt. Dann belomme ich einen Anruf, wo ein Mensch, der ein paar Ebenen ueber mir steht, sagt, er wolle sowas fuer ein paar selbsterstellte HTML-Seiten haben, die er auf seiner Platte hat und ein paar andere Leute greifen ueber gemountete Laufwerke noch drauf zu. Ich sag ihm also, das geht nicht. Und jetzt die dumme Frage: Wieso? Ich hab doch auch so eine Uhr, die dauernd weiterzaehlt ...

          Du solltest dabei aber nicht uebersehen, daß besagter Mensch auch irgendwo Fachmann ist, sonst waere er wohl nicht ein paar Etagen ueber Dir. Nur ist es eben nicht Webprogrammierung. Aufwand und Nutzen einer Information muessen in einer Relation stehen. Was wuerdest Du z. B. bei einer Frage nach dem Urheberrecht zu folgender Anwort sagen: Mensch, was für eine dumme Frage, lies doch das xyz-Gesetzbuch, da steht doch alles drinnen.

          Ich finde, dass bei Deinem Beispiel auch eine gehoerige Portion Arroganz herauszulesen ist. In der Zeit in der Du ihn mit Fachbegriffen verwirrt hast, haettest Du es wahrscheinlich auch verstaendlich erklaeren koennen. Als Laie ist es oft gar nicht so einfach zwischen einer "dummen" und "intelligenten" Frage zu unterscheiden.

          Viele Gruesse
          Harald

      2. hi!

        Ich bin nicht der Meinung, dass es sonderlich viel bringt, an drei aufeinanderfolgenden Tagen immer die gleiche Frage zu stellen. Vielleicht solltest du darüber mal nachdenken.
        Worin das Problem bestehen sollte, die Tabelle in einer while-Schleife auszugeben, kann ich auch noch nicht so ganz nachvollziehen, aber Calocybe hat darauf ja schon geantwortet.

        bye, Frank!