Christoph Schnauß: Tabelle vollständig generieren

Beitrag lesen

hallo Forum ;-)

Ich bin seit mehreren Tagen dabei, meine "alten" Perl-Scripte zu "modernisieren". Ein Haufen Tipparbeit ...
Dabei bin ich zwar über einen Berg kleinere und größere Problene gestolpert, aber nur eines konnte ich bisher nicht auflösen. Es geht um die Einbindung des CGI-Moduls in der Form

use strict;
use CGI;
my $my = new CGI;

und um das Generieren von HTML-Seiten. Normalerweise funktiuoniert das ja wunderbar, bloß mit Tabellen bekomme ich Probleme. Folgendes Beispiel:

sub keine_eingabe {
print $my->header(),"\n",
      $my->start_html(-title =>'keine Eingabe',
                 -style =>{'src'=>'http://www.meine_adresse.de/allgemein.css','\n'},
                ),"\n",
      $my->start_table({-width =>'80%'}),"\n",
      $my->start_td({-colspan =>'2'}),"\n",
      $my->h3('Fehler:<br>Es wurde nichts angegeben'),"\n",
      $my->p('der Text fehlt ;-)<br>bitte Text eingeben und erneut absenden'),"\n",
      $my->end_td(),"\n",
      $my->end_table(),"\n",
      $my->end_html();
exit;
}

In dieser Form macht das keine Mühe, ist bloß nicht "vollständig". Denn: da fehlt das <tr>, und _genau_darum_ gehts mir. Ich möchte (muß) meine generierte Tabelle in zwei Spalten aufteilen, was dann in der zweiten Tabellenzeile erfolgen soll. Rechte Spalte für ein paar Eingabefelder (textfields und buttons), linke Spalte für Hinweise. Aber aus irgendeinem Grund fehlt bei dieser Art der Notierung die Möglichkeit, mit

$my->tr()

irgendwas auszurichten. Ich verstehe nicht, warum das mit $my->td() funktioniert, aber nicht mit $my->tr(), schließlich möchte ich nicht sämtliche Tabellenzellen nebeneinander stellen.

Hat jemand nen Hinweis?

Ähm, ehe jetzt irgendwer "perldoc CGI" oder ähnliches rät: das hab ich bereits alles ziemlich grundlich gelesen. In meinen "alten" Scripts hatte ich sowas stehen:

sub keine_eingabe {
   print "Content-Type: text/html\n\n";
   print "<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\n";
   print "<title>keine Eingabe</title>\n";
   print "<link rel="stylesheet" type="text/css" href="http://www.meine_adresse.de></head>\n";
   print "<body>";
   print "<table width="80%">";
   print "<tr><td colspan="2"><h3>Fehler
   ...

das funktioniert ja auch weiterhin, und _hier_ kriege ich meine <tr>'s auch generiert. Warum klappt das nun nicht in der "moderneren" Schreibweise?

Grüße aus Berlin

Christoph S.