sub print_text_html {                                   # Subroutine, die die Tabelle definiert      my @rows = ();                                      # leere Spalten    my($am,$ziel,$von,$gate,$arrival,$depart)=@_;       # Aufruf der daten-Subroutine, hier werden die Hasreferenzen in ein leeres Array gepackt    my ($uhrzeit,$datum) = &datum_uhrzeit();            # Aufruf der Datum_uhrzeit Subroutine    my $h = td ({-bgcolor=>'#66FFFF'},$uhrzeit);        # die aktuelle Uhrzeit wird einer Zabellenspalte zugewiesen    my %status = &status(@_); #HJE #    my $i = (); #HJE    foreach my $status (@status) {                        # der Status (Gestartet, Boarding, Check in) aus der gleichnamigen Subroutine wird aufgerufen #HJE    $i = td ({-bgcolor=>'#66FFFF'},$status);                # der Status wird einer Tabellenspalte zugewiesen #HJE    };         #HJE Kommentar: der jeweiligen Flugnummer muss der entsprechende Status $i zugeordnet werden #HJE und nicht alllen Fluegen der in der obigen foreach-Schleife zuletzt berechnete Status #HJE Daher muss die subroutine status ein Hash zurueckgeben, s.o., #HJE und "my $i =  td  ..... " muss in die folgende Schleife   # (sort { "$Stunde:$Minute:$Monatstag:$Monat:$Jahr" <=> ) keys %$am )        foreach my $flugnr ( keys %$am) {         # Schleife, um an die Werte der Hash-Referenzen heran zu kommen und damit wirklich alle Daten erfasst werden #my @sort = &sort_nach_datum(@_);     my $a = td({-bgcolor=>'#66FFFF'},$am->{$flugnr});        # Den einzelnen Datenwerten werden Tabellenspalten zugewiesen.   my $b = td({-bgcolor=>'#66FFFF'},$flugnr); my $c = td({-bgcolor=>'#66FFFF'},$ziel->{$flugnr}); my $d = td({-bgcolor=>'#66FFFF'},$von->{$flugnr}); my $e = td({-bgcolor=>'#66FFFF'},$gate->{$flugnr}); my $f = td({-bgcolor=>'#66FFFF'},$arrival->{$flugnr}); my $g = td({-bgcolor=>'#66FFFF'},$depart->{$flugnr}); my $i = td({-bgcolor=>'#66FFFF'},$status{$flugnr}); #HJE            push(@rows,Tr($a,"\n",$b,"\n",$c,"\n",$d, "\n",$e, "\n",$f, "\n",$g, "\n",$h, "\n",$i));  #Die einzelnen Tabbellenspalten werden an die Zeilen                                                                                                      gepackt            };       return (@rows);                       # die Subroutine gibt Die Zeilen der Tabbelle zurück }; sub page {                                             # diese Subrotuine erzeugt die eigentliche HTML-Seite    my ($uhrzeit,$datum) = datum_uhrzeit();            # man braucht das aktuelle Datum und die reale Uhrzeit    my ($header,@content) = @_;                         #hier wird die Seite geschrieben    Delete_all();    return header, start_html($header),        $header = h1({-align=>'center'}, font({-color=>'#3333FF'},'Flugplan Bielefeld')), h2 ({-align=>'center'}, $datum), hr, br, br, br, h3({-align=>'center'}, 'Abflüge'),        table({-border=>1,-width=>'90%',-align=>'center'}, th ('Am'), th('Flug'), th('Nach'), th('Von'), th('Gate'),              th('Ankuftzeit'), th('Abflugzeit'), th ('aktuelle Zeit'), th('Status'),              @content), end_html; };