| 

.NET C# Java Javascript Exception

3
Ich programmiere gerne in Perl und nutze dazu schlicht Notepad. Dann lade ich die Datei auf den Server und in der Regel kommt irgendein Serverfehler wie etwa "Fehler Nummer 500 interner Server Error". Das sagt natürlich gar nichts. Ich würde daher gerne den Perl Interpreter anweisen, den Fehler direkt auf der Website anzugeben. Ich das möglich?
17.04.2012
lobstar 81 1 1 3
2 Antworten
2
http://www.cyberciti.biz/faq/display-or-view-the-perl-cgi-errors-in-a-web-browser/

Oder:
#!/usr/bin/perl -w

use strict;
use warnings;

our $logfile = '/tmp/logfile';

# Perl-Fehler abfangen.
$SIG{__WARN__} = \&debug;


# Haengt Zeichenkette an Datei an.
#
# @param STRING Datei, die beschrieben werden soll.
# @param STRING Zeichenkette, die in die Datei geschrieben werden soll.
sub file_put_content
{
open(DEST, '>>' . shift) or die("Kann Ziel nicht oeffnen: $!\n");
print DEST shift;
close(DEST);
}

# Schreibt Nachricht in Textdatei.
#
# @param STRING Nachricht.
sub debug
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $msg = sprintf('%4d-%02d-%02d %02d:%02d:%02d ',$year+1900,$mon+1,$mday,$hour,$min,$sec) . shift;

file_put_content($logfile, $msg."\n");
}


Die Funktion debug kann natürlich auch so umgeschrieben werden, dass die Meldung per printf direkt an die Standardausgabe gesendet wird.

Edit: Funktion file_put_content nachgereicht.
18.04.2012
Patrick-Oliver 81 1 1
0
Patricks Antwort ist ja schon deine Lösung.
Ich würde dir aber Eclipse mit den Addon EPIC(1) ans Herz legen, dort ist sogar Debugging mit Breakpoints möglich. Logging nutze ich immer Log4Perl. Erspart dir eben ein ganzen Haufen Probleme wenn du das Programm direkt lokal getestet bekommst.

Wenn du für Webseiten Perlscripte schreibst, dann richte dir am besten ein kleinen lokalen Webserver ein mit LAMP/WAMP, das erspart immer das TryAndError wenn du deine Scripte auf die Produktivmaschine hochlädst. Wenn du nicht auf deinem Rechner die Server installieren möchtest, nutze doch einfach Virtualbox und installiere es dort drin.

Wenn der Produktiv Webserver mod_perl verwendet, so ist es von der Programmierung etwas eingeschränkter als eine vollständige lokale Perl-Installation die mittels mod_cgi/mod_fastcgi abläuft. Da hatte ich in meiner Anfangszeit auch so einige Fehler, vor allem bei Modulen :-)

Ansonsten lokal testen mittels perl -c meinscript.pl ob die Syntax passt und dann hochladen.


[1] http://www.epic-ide.org/guide/ch06s02.php
18.04.2012
Lord_Pinhead 778 1 8

Stelle deine Web-Frage jetzt!