Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge

 
Erweiterte Suche

5263 Beiträge in 1103 Themen- von 588 Mitglieder - Neuestes Mitglied: hoermara

07.01.2009 21:43
ProfiHost - SupportforumDiskussionsmöglichkeiten mit anderen KundenProgrammiersprachen (PHP/Perl/C/Python)Perl Startschwierigkeiten
Seiten: [1]   Nach unten
Drucken
Autor Thema: Perl Startschwierigkeiten  (Gelesen 2251 mal)
bzwo
Newbie
*
Offline Offline

Beiträge: 4


Profil anzeigen
« am: 07.04.2004 14:30 »

Hallo zusammen,

ich wollte mir gerne mal Perl anschauen und habe einfach mal folgendes Skript hochgeladen

#!/usr/bin/perl
print 'Hello world.';

und als test.pl abgespeichert. Anschließend die Rechte darauf auf 755 gesetzt.

Beim <a href=http://www.pfadfinder-selmsdorf.de/test.pl>Aufruf</a> bekomme ich allerdings eine Fehlermeldung "Internal Server Error" ...

Ist dieses Skript nur für die Kommandozeile gedacht?
Muß es für HTML-Ausgaben anders geschrieben werden?

Ich weiß ja auch nicht  :?

bzwo
Gespeichert
ProfiHost - Technik
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1626


Profil anzeigen
« Antworten #1 am: 08.04.2004 16:36 »

Dieses Script geht so nur auf der Kommandozeile. Damit es im Browser funktioniert, muß als erstes ein entsprechender Header ausgegeben werden:
print "Content-Type: text/html\n\n";

außerdem sollte nach #!/usr/bin/perl stehts eine leere Zeile folgen.

Wichtig ist noch, dass man das Script im ASCII Modus hochläd.
Gespeichert

Mit freundlichen Grüßen
Ihr ProfiHost Team
Michael
Full Member
***
Offline Offline

Beiträge: 161


Profil anzeigen WWW
« Antworten #2 am: 08.04.2004 18:53 »

Hallo,
ansonsten ist auch für Perl (für den Anfang) SELFHTML zu empfehlen. Kann man auch gezippt herunterladen.

Gruß
Michael
Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
bzwo
Newbie
*
Offline Offline

Beiträge: 4


Profil anzeigen
« Antworten #3 am: 09.04.2004 16:58 »

Danke für die Info und den Tipp ... die Feiertage sind gerettet Smiley
Gespeichert
SDamerow
Newbie
*
Offline Offline

Beiträge: 1


Profil anzeigen
« Antworten #4 am: 05.05.2004 10:43 »

Help, I'm stuck.

Ich habe mein CGI-Script schon auf folgende Zeilen reduziert:
Code:
#!/usr/bin/perl -w

use CGI;

my $cgi = new CGI;
$cgi->redirect('../asf/main.php');

exit;


Ich bekomme immer wieder einen HTTP-500 Fehler und das Error-Log ergaenzt sich durch folgende Zeile "... Premature end of script headers ..."

Ich habe im Editor eingestellt, dass er U**X-Zeilenumbrueche benutzt, das Script im ASCII-Mode hochgeladen und die Berechtigungen auf chmod 755 geaendert.

Ich kann auch keine weiteren Anhaltspunkte finden um diesen Fehler zu beheben.

Gruss
Stefan
Gespeichert
ProfiHost - Technik
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1626


Profil anzeigen
« Antworten #5 am: 05.05.2004 11:18 »

Wenn Sie nur einen Internal Server Error erhalten, dann ist das Script nicht im ASCII Modus oder aber die Dateirrechte falsch. Ich kann mir das gerne einmal angucken. Benötige dazu aber Username und Kundennummer.
Gespeichert

Mit freundlichen Grüßen
Ihr ProfiHost Team
memowe
Newbie
*
Offline Offline

Beiträge: 3


Profil anzeigen
« Antworten #6 am: 09.09.2005 09:21 »

Ich habe mein CGI-Script schon auf folgende Zeilen reduziert:
Code:
#!/usr/bin/perl -w

use CGI;

my $cgi = new CGI;
$cgi->redirect('../asf/main.php');

exit;

Ich bekomme immer wieder einen HTTP-500 Fehler und das Error-Log ergaenzt sich durch folgende Zeile "... Premature end of script headers ..."

Ich empfehle Dir dringend, Dich mit dem CGI-Modul besser vertraut zu machen. Die Dokumentation ist einfach lesbar und sehr ausführlich. Da hättest Du auch gefunden, dass die redirect-Methode nichts schreibt, Du musst ihren Ouput mit print noch ausgeben. Ferner empfiehlt es sich immer, warnings und strict zu benutzen. exit aufzurufen ist am Ende des Skripts auch unnötig. Meine Version sollte mit richtigen Dateizugriffsrechten funktionieren:

Code:
#!/usr/bin/perl

use warnings;
use strict;
use CGI qw(:standard fatalsToBrowser);

my $cgi = new $cgi;
print $cgi->redirect("http://www.example.org/"); # besser absolute URIs angeben!

__END__

Zitat von: perldoc CGI
       You should always use full URLs (including the http: or ftp: part) in
       redirection requests.  Relative URLs will not work correctly.

Ein Hallowelt-Skript sähe so aus:

Code:
#!/usr/bin/perl

use warnings;
use strict;
use CGI qw(:standard fatalsToBrowser);

my $cgi = new CGI;
print $cgi->header(-type => 'text/plain');
print "Hallo Welt! Hier spricht $0.";

__END__

Ich persönlich bevorzuge übrigens das prozedurale CGI-Interface, aber das ist Geschmackssache und hängt auch von der Größe des Projekts ab. Wenn Du ausschließlich das OOP-Interface nutzen willst, musst Du :standard nicht dazuholen. fatalsToBrowser empfiehlt sich während der Entwicklung aber schon...

HTH, und bedenke: TIMTOWTDI Smiley

Mirko
Gespeichert
Seiten: [1]   Nach oben
Drucken
Gehe zu:  

Theme orange-lt created by panic