Beat: Variable Typ - .txt-Inline?

Beitrag lesen

Struppi hat dich bereits darauf aufmerksam gemacht, wie wichtig es ist, zuerst Errormessages zu kontrollieren und die Ausgabe an den richtigen Ort umzuleiten.
Normalerweise gibt man da schnell die Fehler an den Browser aus.

Ich habe für mich jedoch eine andere Lösung wie folgt:
Ich habe in meinen cgi Scripten die Anweisung

  
BEGIN {  
   use CGI::Carp qw(carpout);  
   open(LOG, ">>error.txt") or die "Unable to append to error.txt: $!\n";  
   carpout(*LOG);  
}  

Das heisst, es werden alle Errormessages in ein File im gleichen Directory wie das ausführende Script umgeleitet.

Scripte durchlaufen verschiedene Phasen.
Der BEGIN Block stellt sicher, dass das File bereits vor der eigentlichen Run-Time geöffnet wird um möglichst alle Fehler fangen zu können.

Der Übersicht halber sollte man BEGIN Blocks auch ziemlich oben im Skript notieren.

open(LOG, ">>error.txt") or die .....

mit ">>" wird der Text angehängt.

Warum ist das besser?
Grund 1: Errormessages an den Browser werden je nachdem in einem kaputten HTML Kontext ausgegeben, was der Leserlichkeit nicht sehr hilfreich ist.
Grund 2: Man darf derart warnings auch bei Online-Skripten laufen lassen.
Normale User sollten keine Errormessages (ausser die durch den Server direkt erzeugten) sehen.
Grund 3: use warnings ist keine Performance Strafe.
Fehler im Code sind es.

mfg Beat

--
Selber klauen ist schöner!
0 192

Variable Typ - .txt-Inline?

gary
  • perl
  1. 0
    Beat
    1. 0
      Patrick Andrieu
      1. 0
        at
        1. 0
          Siechfred
          1. 0
            at
            1. 0
              Malcolm Beck´s
              1. 0
                at
                1. 0
                  Malcolm Beck´s
                  1. 0
                    at
                    1. 0
                      Patrick Andrieu
                      1. 0
                        Malcolm Beck´s
                        1. 0
                          Patrick Andrieu
                          1. 0
                            Malcolm Beck´s
                            1. 0
                              Patrick Andrieu
                              1. 0
                                Malcolm Beck´s
                                1. 0
                                  at
                                  1. 0
                                    Malcolm Beck´s
                                    1. 0
                                      Patrick Andrieu
                                      1. 0
                                        Malcolm Beck´s
                                    2. 0
                                      at
                                      1. 0
                                        Malcolm Beck´s
                                        1. 0
                                          at
                                          1. 2
                                            at
                                            1. 0
                                              Patrick Andrieu
                                              1. 0
                                                at
                                                1. 0
                                                  Patrick Andrieu
                                                  • seitenbewertung
                                                  1. 0

                                                    Yet another Tutorial

                                                    Malcolm Beck´s
                                                    1. 0
                                                      at
                                            2. 0
                                              Malcolm Beck´s
                                              1. 0
                                                at
                                                1. 0
                                                  Malcolm Beck´s
                                                  1. 0

                                                    kein Perl

                                                    Patrick Andrieu
                                                    • seitenbewertung
                                                  2. 0
                                                    at
                                                    1. 0
                                                      Malcolm Beck´s
                                                      1. 0
                                                        at
                                                        1. 0
                                                          Malcolm Beck´s
                                                          1. 0
                                                            at
                                                            1. 0
                                                              Malcolm Beck´s
                                                              1. 0
                                                                at
                                                                1. 0
                                                                  Malcolm Beck´s
                                                                  1. 0
                                                                    at
                                                                    1. 0
                                                                      Malcolm Beck´s
                                                                      1. 0
                                                                        at
                                                                        1. 0
                                                                          Malcolm Beck´s
                                                                          1. 0
                                                                            at
                                                                            1. 0
                                                                              Malcolm Beck´s
                                                                              1. 0
                                                                                at
                                                                                1. 0

                                                                                  Ideen für Seitendesign

                                                                                  Malcolm Beck´s
                                                                                  • meinung
                                                                                  1. 0
                                                                                    Malcolm Beck´s
                                                                                    1. 0
                                                                                      at
                                                                                      1. 0
                                                                                        Malcolm Beck´s
                                                                                        1. 0
                                                                                          Malcolm Beck´s
                                                                                          1. 0
                                                                                            at
                                                                                        2. 0
                                                                                          at
                                                                                          1. 0
                                                                                            Malcolm Beck´s
                                                                                            1. 0
                                                                                              at
                                                                                              1. 0
                                                                                                Malcolm Beck´s
                                                                                                1. 0
                                                                                                  at
                                                                                                  1. 0
                                                                                                    Malcolm Beck´s
                                                                                                    1. 0
                                                                                                      at
                                                                                                      1. 0
                                                                                                        Malcolm Beck´s
                                                                                                        1. 0
                                                                                                          at
                                                                                                          1. 0
                                                                                                            Malcolm Beck´s
                                                                                                            1. 0
                                                                                                              at
                                                                                                              1. 0
                                                                                                                Malcolm Beck´s
                                                                                                                1. 0
                                                                                                                  Malcolm Beck´s
                                                                                                                  1. 0
                                                                                                                    at
                                                                                                                    1. 0
                                                                                                                      Malcolm Beck´s
                                                                                                                      1. 0
                                                                                                                        at
                                                                                                                        1. 0
                                                                                                                          Malcolm Beck´s
                                                                                                                          1. 0
                                                                                                                            at
                                                                                                                            1. 0
                                                                                                                              Malcolm Beck´s
                                                                                                                              1. 0
                                                                                                                                at
                                                                                                                                1. 0
                                                                                                                                  Malcolm Beck´s
                                                                                                                                  1. 0
                                                                                                                                    at
                                                                                                                                    1. 0
                                                                                                                                      Malcolm Beck´s
                                                                                                                                      1. 0
                                                                                                                                        at
                                                                                                                                        1. 0
                                                                                                                                          Malcolm Beck´s
                                                                                                                                          1. 0
                                                                                                                                            at
                                                                                                                                            1. 0
                                                                                                                                              Malcolm Beck´s
                                                                                                                                              1. 0
                                                                                                                                                at
                                                                                                                                                1. 0
                                                                                                                                                  Malcolm Beck´s
                                                                                                                                                  1. 0
                                                                                                                                                    at
                                                                                                                                                    1. 0
                                                                                                                                                      Malcolm Beck´s
                                                                                                                                                      1. 0
                                                                                                                                                        at
                                                                                                                                                        1. 0
                                                                                                                                                          Malcolm Beck´s
                                                                                                                                                          1. 0
                                                                                                                                                            at
                                                                                                                                                            1. 0
                                                                                                                                                              Malcolm Beck´s
                                                                                                                                                              1. 0
                                                                                                                                                                at
                                                                                                                                                                1. 0
                                                                                                                                                                  Malcolm Beck´s
                                                                                                                                                                  1. 0
                                                                                                                                                                    at
                                                                                                                                                                    1. 0
                                                                                                                                                                      Malcolm Beck´s
                                                                                                                                                                      1. 0
                                                                                                                                                                        at
                                                                                                                                                                        1. 0
                                                                                                                                                                          Malcolm Beck´s
                                                                                                                                                                          1. 0
                                                                                                                                                                            at
                                                                                                                                                                            1. 0
                                                                                                                                                                              Malcolm Beck´s
                                                                                                                                                                              1. 0
                                                                                                                                                                                Malcolm Beck´s
                                                                                                                                                                                1. 0
                                                                                                                                                                                  at
                                                                                                                                                                                  1. 0
                                                                                                                                                                                    Malcolm Beck´s
                                                                                                                                                                                    1. 0
                                                                                                                                                                                      at
                                                                                                                                                                                      1. 0
                                                                                                                                                                                        Malcolm Beck´s
                                                                                                                                                                                        1. 0
                                                                                                                                                                                          at
                                                                                                                                                                                          1. 0
                                                                                                                                                                                            Malcolm Beck´s
                                                                                                                                                                                            1. 0
                                                                                                                                                                                              at
                                                                                                                                                                                              1. 0
                                                                                                                                                                                                Malcolm Beck´s
                                                                                                                                                                                                1. 0
                                                                                                                                                                                                  at
                                                                                                                                                                                                  1. 0
                                                                                                                                                                                                    Malcolm Beck´s
                                                                                                                                                                                                    1. 0
                                                                                                                                                                                                      at
                                                                                                                                                                              2. 0
                                                                                                                                                                                at
                                                                                                                                  2. 0
                                                                                                                                    Patrick Andrieu
                                                                                                                                    1. 0
                                                                                                                                      Malcolm Beck´s
                                                                                                                                      1. 0
                                                                                                                                        at
                                                                                  2. 0
                                                                                    at
                      2. 0
                        at
                        1. 0
                          Patrick Andrieu
                          1. 0
                            at
                            1. 0
                              Patrick Andrieu
                    2. 0
                      Malcolm Beck´s
                      1. 0
                        at
                        1. 0
                          Malcolm Beck´s
                          1. 0
                            at
                            1. 0
                              Malcolm Beck´s
    2. 0
      gary
      1. 0
        Patrick Andrieu
        1. 0
          gary
          1. 0
            Siechfred
            1. 0

              Variable Typ - >>erledigt<<

              gary
              1. 0

                slurp

                Kurt Z
        2. 0
          Malcolm Beck´s
          1. 0
            Patrick Andrieu
      2. 0
        Beat
        1. 0
          Patrick Andrieu
  2. 0
    Patrick Andrieu
    1. 0
      gary
      1. 0
        Siechfred
        1. 0
          Struppi
      2. 0
        Patrick Andrieu
      3. 1
        Struppi
  3. 0
    gary
    1. 0
      gary
      1. 0
        Beat
        1. 0
          gary
          1. 0
            gary
          2. 0
            Beat
            1. 0
              gary
              1. 0
                Struppi
                1. 0
                  gary
                  1. 0
                    Struppi
              2. 0
                Beat
                1. 0
                  gary
                  1. 0
                    Patrick Andrieu
                    1. 0
                      Beat
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Beat
                    2. 0
                      gary
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Patrick Andrieu
                          1. 0

                            Variable Typ - .txt-Inline

                            gary
                            1. 0
                              Patrick Andrieu
                              1. 0

                                Help!

                                gary
                                1. 0
                                  Patrick Andrieu
                                2. 0
                                  Beat
                      2. 0
                        Struppi
                        1. 0
                          gary
                          1. 0
                            Struppi
                            1. 0
                              gary
                              1. 0
                                Struppi
                                1. 0
                                  Struppi
                                2. 0
                                  Patrick Andrieu
                                3. 0
                                  gary
                                  1. 0
                                    Patrick Andrieu
                                    1. 0
                                      Struppi
                                    2. 0
                                      gary
                                      1. 0
                                        Patrick Andrieu
                                      2. 0
                                        Struppi
                                        1. 0
                                          gary
                                          1. 0
                                            Siechfred
                                            1. 0
                                              Patrick Andrieu
                                              1. 0
                                                gary
                                                1. 0
                                                  Patrick Andrieu
                                                  1. 0
                                                    thebach
                                                    1. 0
                                                      Patrick Andrieu
                                  2. 0
                                    Struppi
                              2. 0
                                Patrick Andrieu
                                1. 0
                                  Struppi
                  2. 0
                    Struppi
                  3. 0
                    Patrick Andrieu
                2. 0
                  Struppi
        2. 0
          Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        gary