# XAMPP und Perl



## Wissenscoder (2. November 2005)

HI!
 Bin gerade dabei Perl zu lernen. Habe XAMPP installiert und das Perl Addon. Wie bekkomme ich nun eine einfache Perl Datei ans Laufen?!


----------



## GH@NDI (3. November 2005)

Naja, das ist jetzt ne gute Frage 

Ziemlich allgemein und recht wenig informationen 

Um erstmal zu testen, ob mit der Installation alles geklappt hat, empfehle ich mal folgendes kleines Programme:

```
#!c:/dein/pfad/zu/perl

print "Content-Type: text/plain\n\n";
print "Hello from perl!";
```

Du musst allerdings darauf achten, dass du die Shebang entsprechend für deine Anforderungen anpasst. Die Shebang ist die erste Zeile in einem Perl-Script und beginnt IMMER mit #! und ist der Pfad zu deinem Perl Interpreter. Theoretisch sollte bei XAMPP eine entsprechende Dokumentation vorhanden sein. Ansonsten suchst du einfach innerhalb des XAMP Installations-Verzeichnisses nach der Datei perl.exe und schreibst du vollständigen Pfad zur perl.exe in die Shebang.


```
also z.B.

#!c:/XAMPP/perl/perl.exe -w
```

Das -w gewöhnst du dir gleich an. Damit schälst du nämlich sämtliche Warnings an, die dem Perl-Interpreter beim verarbeiten deines Quellcodes auffallen.

Den oben gegeben Beispielcode speicherst du innerhalb deines XAMPP Verzeichnisses in einem cgi-bin Verzeichnis. Wie du dabei die Datei nennst ist vollkommen egal, hauptsache du bekommst den Namen nachher wieder zusammen, wenn du ihn in der Adresszeile deines Browser wieder eintippst. Wichtig ist nur die Dateiendung. Vermutlich wird XAMPP standardmäßig auf .cgi oder .pl Dateien reagieren, also muss die Datei eine der beiden Endungen besitzen.

Das Script müsste jetzt theoretisch unter der Adresse "http://localhost/cgi-bin/DerNameDesScript.[cgi|pl]" erreichbar sein, je nachdem, ob du die Endung .cgi oder .pl verwendet hast.

Nunja, und wenn alles klappt und XAMPP richtig installiert wurde, dann wars das jetzt eigentlich auch schon 

Allerdings ist es relativ schwer, dir entsprechende Anleitung zu geben, ohne entsprechende Informationen zu haben, wie weit du bist. Ich könnte mir auch vorstellen, dass XAMPP einen Dokumentation dabei hat, die vermutlich detailierter das alles hier beschreibt und auch evtl. besonderheiten des XAMPP-Packages in Bezug auf Perl behandelt.

Mit freundlichem Gruß,
Sven

Achso, ich ging einfach mal davon aus, dass du auf einem Windows System zu hause bist


----------



## renee (4. November 2005)

Fuer Windows-User: Ich wuerde Perl nach C:\usr\ installieren, weil man dann die Unix-typische Shebang #!/usr/bin/perl verwenden kann. Dann gibt es spaeter weniger Probleme wenn man dann die CGI-Skripte auf den Webspace eines normalen Webhosters verschiebt (Und dabei immer darauf achten, dass im ASCII-Modus uebertragen wird)...

Du solltest besser 
use warnings;
statt des -w benutzen, da es einige aeltere Module gibt, die Dir mit -w jede Menge Warnungen um die Ohren hauen wuerden. Mit use warnings; passiert Dir das nicht...

Ausserdem solltest Du Dich noch mit 
use strict;
(siehe http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict ) auseinandersetzen, was sehr nuetzliche ist...

Ganz lesenswert: http://wiki.perl-community.de/bin/view/Wissensbasis/FaqCGI


----------



## Wissenscoder (4. November 2005)

hi! schon mal vielen dank!
 Diese Fehlermeldung kommt jetzt:


> Die Anfrage kann nicht beantwortet werden, da im Server     ein interner Fehler aufgetreten ist.
> 
> Fehlermeldung:
> Premature end of script headers: test.pl
> ...


 

 Das ist der Code:

```
#!C:/Programme/xampp/perl/bin/perl.exe
 use warnings;
 
 
 print 'Hello world';
```
 
 Könnt ihr mir helfen?


----------



## renee (7. November 2005)

Es muss immer ein Header mit ausgegeben werden. Dieser erscheint nicht auf der Seite, enthält aber Informationen über die Art des Inhalts und so weiter (siehe http://www.bolege.de/http-header/ )

Dein Skript muss nur ein klein wenig abgeändert werden, dann sollte es laufen (wenn auch die Rechte entsprechend gesetzt sind):

```
#!C:/Programme/xampp/perl/bin/perl.exe
 use warnings;
 
print "Content-type: text/html\n\n"; # Header ausgeben
 
 print 'Hello world';
```

Wenn Du solche Fehler bekommst, dann solltest Du mal auf folgende Seite schauen: http://wiki.perl-community.de/bin/view/Wissensbasis/FaqCGIServerError500
Dort wird viel erklärt und die häufigsten Fehler genannt...


----------

