Perl einrichten

M

moritz-t

Aktives Mitglied
Thread Starter
Dabei seit
09.07.2003
Beiträge
369
Reaktionspunkte
1
Hallo,
wie kann ich unter Mac OS X Perl zum Laufen bekommen? Den Apache Server habe ich bereits aktiviert und kann ihn über Safari erreichen, nur wie geht es jetzt weiter? Ich weiß noch aus alten Windoof Zeiten, dass ich irgendetwas mit der httpd.conf einstellen musste usw. Muss man das auf dem Mac auch? Und wenn ja was und wo? Brauceh ich noch extra Software, einen Interpreten z.B.?

Vielen Dank,
moritz
 
MacPerl

Hallo,

ich habe mir das MacPerl auf www.macperl.com runtergeladen. Installiert. Fertig. Kannst dann mit z.B. bbedit einfach deine Programme ausführen.

Aber mach vorher mal eins. Behmühe mal Darwin (Terminal) und gib mal "perl -v" ein. Falls da was erscheint, ist Perl schon installiert.

Gruss
Artaxx
 
Danke für deine Antwort. Wenn ich "perl -v" ins Terminal eingebe erscheint folgender Text:
This is perl, v5.8.1-RC3 built for darwin-thread-multi-2level
(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2003, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.

Perl scheint also schon installiert zu sein. Wie kann ich aber nun die Scripte ausführen, wenn ich mir nicht unbedingt BBedit kaufen will? Gibt es nicht auch eine Möglichkeit sie direkt über Safari und den Apache-Server auszuführen?

moritz
 
Ich vermute mal, Du möchtest SSI (ServerSideIncludes) einrichten.
Perl ist auf OSX tatsächlich schon drauf.

Du suchst in der httpd.conf
folgende Zeilen:
# AddType text/html .shtml
# AddHandler server-parsed .shtml

und entfernst die Kommentare.

Außerdem musst Du für die Verzeichnisse, in denen SSI funktionieren soll in der Options-Zeile
Includes

eintragen.

Danach ein fröhliches
sudo apachectl graceful
und Apache sucht auf allen Seiten, die auf .shtml enden nach CGI Aufrufen und führt sie ggf. aus.
Ob das nun Shellskripte, Perl-Skripte oder gar c/c++ Programme etc. sind ist grundsätzlich erstmal egal.
 
Zuletzt bearbeitet:
Jupp

moritz-t schrieb:
Danke für deine Antwort. Wenn ich "perl -v" ins Terminal eingebe erscheint folgender Text:


Perl scheint also schon installiert zu sein. Wie kann ich aber nun die Scripte ausführen, wenn ich mir nicht unbedingt BBedit kaufen will? Gibt es nicht auch eine Möglichkeit sie direkt über Safari und den Apache-Server auszuführen?

moritz

Ja, dann ist das schon installiert. Du kannst auch ein Programm im Texteditor schreiben, und dann im Terminal in das Verzeichnis wechseln und es mit "perl ####.pl" ausführen. Aber der BBedit ist es wert. Kannst aber auch mal so ein bisschen rumschauen, ob es noch einen Texteditor mit "Ausführen..." Funktion gibt.

Gruss
Artaxx

P.S. Und viel Spass mit Perl. Ich schreib da in zwei Wochen eine Vordiplomprüfung drüber. Ist eine der chaotischsten Programmiersprachen, die ich kenne.
 
Artaxx schrieb:
Ist eine der chaotischsten Programmiersprachen, die ich kenne.

Streiche "chaotischsten", setze "flexibelsten". :)

Gruß,
Jörn, der Perl über alle anderen Programmiersprachen hinweg vorzieht.
 
Javigator schrieb:
Streiche "chaotischsten", setze "flexibelsten". :)

Gruß,
Jörn, der Perl über alle anderen Programmiersprachen hinweg vorzieht.

Da kannst Dich mit unserem Informatik Professor zusammentun. Der ist der gleichen Meinung. Such mal bei Amazon.de nach dem Perl Buch von Jürgen Schröter und Helmut Seidel. Die sind beide Dozenten an unserer FH. Also wenn Du nach dem Buch immer noch denkst, dass Perl nicht chaotisch sondern flexibel ist dann hast Du meinen Respekt verdient.

Gruss
Artaxx
 
@maceis:
irgendwie bin ich zu dumm, ich kann die httpd.conf nicht finden

@Artraxx:
ich habe ein Skript mit Dreamweaver geschrieben und unter script.pl gespeichert. Wenn ich nun mit dem Befehl "perl /Users/powermac/Sites/b.pl" das Skript im Terminal starten will, passiert überhaupt nichts und mir wird einfach nur eine neu Eingabezeile angezeigt, eigentlich sollte er einen Text anzeigen.

moritz
 
Versuche mal im Terminal in den Ordner zu wechseln (mit cd /users/... u.s.w.) und versuche dann das Skript mit perl b.pl aufzurufen.

Hast Du die Shebang-Zeile drin ??
 
Perl ist genial. Du kannst objektorientiert programmieren, unleserliche Wegferfskripte damit schreiben, Programme komplett in Englisch schreiben, super sauberen Quelltext erstellen, portable Programme mit oder ohne GUI zusammenstricken, dynamische Webseiten erstellen, Bilder, Sound, Text damit manipulieren oder einfach nur das Betriebssystem damit steuern. Und das ganze auf nahezu jedem Betriebssystem. Es gibt tausende Module und das alles zum Nulltarif.

Das gerücht daß Perl unleserlich oder gar chaotisch sei kommt daher, daß die Leute versuchen Pascal oder Java mit Perl zu programmieren. Perl ist wie OS X. Viele Dinge sind sehr viel einfacher als in anderen Sprachen. Nur die wenigstens kommen mit der einfachen Struktur zurecht. Es hat den Anschein als ob die Masse der Programmierer einen hohen Abstraktionsgrad braucht um überhaupt programmieren zu können.

BadHorsie
 
BadHorsie schrieb:
Perl ist genial. ...

Das gerücht daß Perl unleserlich oder gar chaotisch sei kommt daher, daß
...
BadHorsie

Da ist was dran BadHorsie.
Ein weiterer Grund dürfte sein, dass man schon auch in der Lage ist, damit Code zu produzieren, der ausgesprochen schwer durchschaubar ist.
Es gibt beispielsweise viele Schreibabkürzungen, die für den geübten Perl-Programmierer eine deutliche Erleichterung darstellen, für den Anfänger aber das Erlernen des chinesischen Alphabets als leichtere Übung erscheinen lässte :D
 
Naja, ich weis ja nicht. Aber wo wir gerade mal beim Thema sind:

Wie kann ich ein Perl Skript in eine ausführbare Datei einbinden, sprich: Wie kann ich ein Perl Programm in MAC OS mit einem Tastenklick ausführen ??

Gruss
Daniel
 
Richtig. Perl macht die schwierigen Dinge einfach und die Unmöglichen machbar, wie man so schön sagt. Und das mkt ajsgesprochen wenig Code.
Das Problem für viele wird sein, dass Perl einen nicht zu einer Herangehensweise zwingt, sondern einen einfach machen lässt. Sehr häufig funktioniert sogar das Ergebnis, selbst wenn eigentlich noch Fehler drin sind, die Perl "netterweise", sollte das in dem Kontext gehen, korrigiert. Das führt natürlich dazu, dass die Fehler immer wieder gemacht werden, bis sie mal als solche auch auftreten - und dann versteht man die Welt nicht mehr und denkt, Perl wäre kaputt. :)
Ich persönlich stehe ja auf dem Standpunkt, dass "ordentliches" Programmieren nicht eine Sache der Sprache sein sollte, solange sie einem zumindest die Möglichkeit dazu gibt. Wenn es schon so weit ist, dass einen die Sprache (Java schönes Beispiel) schon einen Stil aufzwingt, dann läuft da etwas falsch. Das behindert die Kreatvität, das hält einen manchmal auf dem Weg zur schnellen Lösung auf. Das ist für mich nicht gut.
Wenn ich ordentlich sein will, dann bin ich es eben, und wenn nicht, dann nicht. Da will ich mich nicht auf eine Sprache verlassen müssen (oder mich nach ihr richten), ordentlich zu programmieren. Perl gibt mir diesen Freiraum, als eine der wenigen Sprachen auf diesem Planeten. Das ich deswegen auf eingebaute "Inspection"-Möglichkeiten und andere Dinge verzichten muss, die nur dafür da sind, dass ein normaler Probgrammierer überhaupt noch mit Hilfer einer 100MB IDE ein mittleres Projekt gestemmt bekommt, das lässt mich total kalt.
So. Ist nur meine Meinung, muss nicht die anderer sein. Und bevor einer fragt: ich habe 3 Jahre Java programmiert, bevor ich vor ein paar Jahren massiv in Perl eingestiegen bin. Manchmal muss ich noch zurück zu Java - da sieht man dann, wie gut man es eigentlich bei Perl hat. :)

Gruß,
Jörn.
 
Artaxx schrieb:
Naja, ich weis ja nicht. Aber wo wir gerade mal beim Thema sind:

Wie kann ich ein Perl Skript in eine ausführbare Datei einbinden, sprich: Wie kann ich ein Perl Programm in MAC OS mit einem Tastenklick ausführen ??

Gruss
Daniel

Ich nehm dafür immer Platypus. Geht gut und einfach.

Jörn.
 
habs jetzt geschafft ein normales Perl-Skript zu starten. Einfach das Skript mit xCode geschrieben und wie oben erwähnt übers Terminal gestartet - funktioniert!
Nur wie kann ich jetzt ein CGI Skript mit Perl im Browser, z.B. Safari anzeigen lassen? Eins wie dieses hier:
#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";
print "<html><body>Hallo Welt</body></html>\n";

weiter oben hat maceis ja schon was von der httpd.conf geschrieben, kann vielleicht nochmal jemand genau sagen, wie ich die finde?

moritz
 
moritz-t schrieb:
...
weiter oben hat maceis ja schon was von der httpd.conf geschrieben, kann vielleicht nochmal jemand genau sagen, wie ich die finde?

moritz

Die httpd.conf liegt unter
/etc/httpd/httpd.conf.

Bearbeiten musst Du diese (i. d. R.) mit einem Texteditor im Terminal.
Da die Datei nur von root geändert werden darf musst Du mit "sudo" arbeiten
Also z. B.:
sudo pico /etc/httpd/httpd.conf

btw.
Ein Perlscript mit XCode ist vielleicht in bisschen überinstrumentiert.
Das kannst Du mit jedem nurText-Editor schaffen.
 
Hier nochmal eine kleine Zusammenfassung:

Einen TextEditor (zB. TextEdit, vi, pico, BBEdit) öffnen und folgenden Quelltext reinhacken:

Code:
#!/usr/bin/perl

print "Hello World\n";

Die Datei als Textdatei im Home-Verzeichnis unter dem Namen "hello" abspeichern. Die Erweiterung ".pl" wird nicht zwingend benötigt. Mit "chmod +x hello" X-Rechte auf die Datei geben. Danach einfach im Terminal "./hello" ausführen. Wenn die Ausgabe "Hello World" erscheint läuft der Perl Interpreter (sollte bei jedem neu installierten Panther der Fall sein) und man hat die halbe Miete.

Um mit Perl CGI-Skripte zu erstellen und lokal zu testen sollte man zuerst den Webserver stoppen, falls er denn läuft. Danach muß die "httpd.conf" editiert werden. Da man dazu Superuser-Rechte benötigt geht man am besten ins Terminal und schickt folgenden Befehl ab: "sudo vi /etc/httpd/httpd.conf". Die Bedienung des "vi" kann man sich mit "man vi" vorher durchlesen. In der "httpd.conf" müssen die Zeilen "LoadModule perl_module libexec..." und die Zeile "AddModule mod_perl.c" auskommentiert, also die Raute davor entfernt werden. Die Datei abspeichern und den Webserver in der Systemeinstellung unter "Sharing -> Personal Web Sharing" starten. Die CGI-Skripte kann man nun mit der Endung ".cgi oder .pl" in dem Verzeichnis "/Library/Webserver/CGI-Executables" ablegen. Diese sollten jetzt im Browser unter "localhost/cgi-bin/skriptname.cgi" geparst werden.

Ein kleines CGI-Skript zum testen könnte folgendermaßen aussehen:
Code:
#!/usr/bin/perl

print "Content-Type: text/html\n";
print "<html><head></head><body>Ich bin ein CGI-Skript<br /></body></html>\n";

Nicht vergessen mit "chmod +x /Library/Webserver/CGI-Executables/skriptname.cgi" X-Rechte auf das Skript zu geben!

PS: Habe gerade das oben zusammengefasste Verfahren auf einem iBook G4 mit einer Standard-Panther Installation getestet. Man muß also keine zusätzliche Software installieren oder sonst was. Einfach die "httpd.conf" editieren und los geht's.

BadHorsie
 
Zuletzt bearbeitet:
Muss passen

Hi,

also da kann ich Dir leider auch nicht mehr helfen. Bis zu CGI oder allgemein Webanwendungen haben wir es in einem Semester nicht geschafft. Aber die httf.conf kann Du über Suchen im Finder sicher finden. Aber ich war eigentlich der Meinung, dass die was mit phpMyAdmin zu tun hat, oder (nicht hauen, falls ich falsch liege)

Gruss
Artaxx
 
@BadHorsie:
habe alles so gemacht, wie du es beschrieben hast, wenn ich aber die Perl Datei aufrufe, bekomme ich folgende Fehlermeldung:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

In der httpd.conf habe ich die beiden Zeilen auskommentiert.

Vielen Dank für eure Hilfe,
moritz
 
moritz-t schrieb:
weiter oben hat maceis ja schon was von der httpd.conf geschrieben, kann vielleicht nochmal jemand genau sagen, wie ich die finde?

moritz

Die ist im Verzeichnis httpd, das in Deinem Hauptverzeichnis liegt. Also im Terminal

cd /etc (wechselt ins hauptverzeichnis)

und dann

cd httpd

und da isse auch schon

Falls Du allerdings Apache 2 laufen hast liegt sie im Verzeichnis

Library/Apache2/conf

Gruß,
 
Zurück
Oben Unten