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;
};