Perl als Ersatz für PHP möglich?

wal

Erfahrenes Mitglied
Hallo,

momentan friste ich als "Einzelkämpfer" für PHP mein Dasein in der Firma. Eine neue strategische Ausrichtung besagt nun, das PHP durch durch Perl ersetzt werden soll. Da ich meine ganzen Webakkplikationen nun in PHP gestrickt hatte, würde ich gerne erfragen, ob das was PHP kann, auch durch Perl abgedeckt werden kann.

a) Kann Perl genauso in HTML Seiten verwendet werden?

b) Kann Perl problemlos mit MySQL zusammenarbeiten?

c) Kann ich in HTML-Seiten Perl einbinden?

d) Momentan ist es so bestellt bei mir, das ich darauf versucht war, den HTML Code vom PHP Code zu trennen. Dies bedeutet, es wird immer zuerst ein PHP Seite aufgerufen, die dann eine HTML Seite anzeigt. Mittels "Post" werdend ann alle Daten aus den Formularen an die PHP Seite geliefert, die diese dann auswertet und entsprechend weiterverarbeitet. Ist dies auch mit Perl möglich?

e) Soweit ich rausbekommen habe läuft Perl ausschliesslich im CGI-Modus - hmm ... habe ich leider noch keine Erfahrungen machen können damit, ist das eine gute Sache? Birgt dies Vorteile?

f) Wo liegt der Unterschied zwischen Perl und PHP im Geheimen?

g) Ich verschicke per PHP Scripts Mails, geht das auch mit Perl?

Entschuldigt bitte die vielen Fragen, da ich aber Perl fremd daherkomme momentan, sind diese sehr wichtig für mich. Es wäre gut, wenn ich irgendwie "belegen" könnte, das Perl PHP ebenbürdigt ist und wir dadurch keine größeren Probleme uns einfangen würden und auch unsere Webapplikationen weiterhin erstellen können.

Das Umfeld ist gemixed und alles sollte sowohl unter Windows, wie auch unter Linux funktionieren.

Ich bedanke mich schon mal vorab für eure Informationen und freue mich über eure Meinungen!
 
Hallo!

wal hat gesagt.:
a) Kann Perl genauso in HTML Seiten verwendet werden?
Direkt nicht. Die eigentlich Idee ist, HTML über Perl auszugeben. Es gibt aber Module wie HTML::Mason oder HTML::EmbPerl die es dir ermöglichen, wie in PHP Code und HTML zu vermischen.

b) Kann Perl problemlos mit MySQL zusammenarbeiten?
Perl benutzt da einen anderen Ansatz als PHP. Für Perl gibt es das DataBase Interface (DBI) welches eine allgemeine API zur Verfügung stellt. Unterhalb des DBI arbeitet dann ein DataBase Driver (DBD) der die gewünschte Funktionalität zur entsprechenden Datenbank herstellt. Vorteil ist dabei, dass ein und der selbe Code auf mehreren verschiedenen Datenbanken funktioniert, man muss lediglich den DataBase Driver tauschen. Standardmäßig ist natürlih ein Treiber für MySQL mit dabei. Neben dem DataBase Interface gibt es aber auch noch eine reine Perl Implementierung für MySQL Datenbanken, nämlich das Modul Mysql.

c) Kann ich in HTML-Seiten Perl einbinden?
Siehe a) :)

d) Momentan ist es so bestellt bei mir, das ich darauf versucht war, den HTML Code vom PHP Code zu trennen. Dies bedeutet, es wird immer zuerst ein PHP Seite aufgerufen, die dann eine HTML Seite anzeigt. Mittels "Post" werdend ann alle Daten aus den Formularen an die PHP Seite geliefert, die diese dann auswertet und entsprechend weiterverarbeitet. Ist dies auch mit Perl möglich?
Gar kein Problem. Mit dem CGI Modul kommst du ohne Probleme an die an das Script übergeben Daten ran. Dabei spielt es keine Rolle ob diese per POST oder GET übemittelt wurden. Und dann kannst du mit deinen Daten machen was du willst und wieder neu ausgeben.

Und für eine echte Trennung von Perl und HTML kann ich nur das Modul HTML::Template empfehlen.

e) Soweit ich rausbekommen habe läuft Perl ausschliesslich im CGI-Modus - hmm ... habe ich leider noch keine Erfahrungen machen können damit, ist das eine gute Sache? Birgt dies Vorteile?
Ausschlielich ist falsch. Es gibt auch mod_perl. Dabei wird ein PerlInterpreter in den Apache Webserver geladen und im Arbeitsspeicher gehalten. Genauso werden alle Scripts als Bytecode von mod_perl im Speicher abgelegt. Bei der CGI Lösung wird halt für jede Anfrage ein Perl Prozess gestartet der dann die Arbeit erledigt. Unterschied im wesentlich ist die Geschwindigkeit, da bei mod_perl natürlich die Ladezeit des Interpreters wegfällt.

f) Wo liegt der Unterschied zwischen Perl und PHP im Geheimen?
Das ist so einen glaubensfrage. Für den einen ist Perl besser für den anderen PHP. Effektiv sind die unterschiede gering. Ich persönlich empfinde allerdings Perl als die konsistentere Sprache. Auf mich macht PHP im gesamten irgendwie einen inkonsistenten Eindruck. Die Funktionsnamen sind unangenehm lang wie ich finde und oftmals auch sehr seltsam. :)

g) Ich verschicke per PHP Scripts Mails, geht das auch mit Perl?
Wahlweise machste es selbst mit einer Pipe zu deinem Sendmail Programm bzw. nut Net::SMTP um mit dinem SMTP Server zu kommunizieren oder kapselst das ganze mit einem der vielen Module zum versenden von eMails.

So, ich glaube, jetzt sind erstmal alle Fragen einigermaßen abgedeckt :)

Alle genannten Module mit Ausname von HTML::Mason und HTML::Embperl sind in der Standarddistribution enthalten. Wobei, bei HTML::Template bin ich mir grade nicht 100%ig sicher. Allerdings gibt alle Module im "Comprehensive Perl Archive Network" kurz CPAN. Das ist das equivalent zu PHPs PEARL, nur älter und Umfangreicher - soweit ich weis :)

Schönen Tag noch,
Sven
 
wal hat gesagt.:
Hallo,

momentan friste ich als "Einzelkämpfer" für PHP mein Dasein in der Firma. Eine neue strategische Ausrichtung besagt nun, das PHP durch durch Perl ersetzt werden soll. Da ich meine ganzen Webakkplikationen nun in PHP gestrickt hatte, würde ich gerne erfragen, ob das was PHP kann, auch durch Perl abgedeckt werden kann.
Ja, vieles klappt sogar besser...
wal hat gesagt.:
a) Kann Perl genauso in HTML Seiten verwendet werden?
Nicht so einfach wie in PHP, aber GH@NDI hat schon ein paar Lösungen aufgezeigt. Ich würde aber davon abraten und lieber Templates benutzen. Ein ganz einfaches Templating-System ist HTML::Template (siehe http://search.cpan.org ). Ich habe die Funktionen auch mal vorgestellt: http://perl.renee-baecker.de/HTML_Template.pdf ... Es gibt auch noch mächtigere Templating-Systeme, aber so ein einfaches sollte erstmal reichen...

wal hat gesagt.:
b) Kann Perl problemlos mit MySQL zusammenarbeiten?
Wie GH@NDI schon sagte, gibt es dafür DBI. Wie man es benutzt? http://perl.renee-baecker.de/perl_datenbanken.pdf
wal hat gesagt.:
c) Kann ich in HTML-Seiten Perl einbinden?

d) Momentan ist es so bestellt bei mir, das ich darauf versucht war, den HTML Code vom PHP Code zu trennen. Dies bedeutet, es wird immer zuerst ein PHP Seite aufgerufen, die dann eine HTML Seite anzeigt. Mittels "Post" werdend ann alle Daten aus den Formularen an die PHP Seite geliefert, die diese dann auswertet und entsprechend weiterverarbeitet. Ist dies auch mit Perl möglich?
siehe a)
wal hat gesagt.:
e) Soweit ich rausbekommen habe läuft Perl ausschliesslich im CGI-Modus - hmm ... habe ich leider noch keine Erfahrungen machen können damit, ist das eine gute Sache? Birgt dies Vorteile?
Das ist nicht richtig. Es gibt mod_perl. Aber das ist für Perl-Anfänger meist ein wenig knifflig. Bei vielen Hostern läuft PHP auch nicht als mod_php, sondern ebenfalls als PHP/CGI...

wal hat gesagt.:
f) Wo liegt der Unterschied zwischen Perl und PHP im Geheimen?
Perl ist viel mächtiger und liefert viel mehr Grundfunktionalitäten als PHP. Es gibt ein viel größeres Modularchiv (http://search.cpan.org), wo man viele Module für seine Arbeit findet. So braucht man das Rad nicht immer wieder neu zu erfinden...

PHP wurde - soweit ich weiß - mal als Templating-System für Perl gestartet...
wal hat gesagt.:
g) Ich verschicke per PHP Scripts Mails, geht das auch mit Perl?
Ja, genau dafür gibt es auch jede Menge Module auf CPAN. http://perl.renee-baecker.de/kurs_02.pdf
wal hat gesagt.:
Entschuldigt bitte die vielen Fragen, da ich aber Perl fremd daherkomme momentan, sind diese sehr wichtig für mich. Es wäre gut, wenn ich irgendwie "belegen" könnte, das Perl PHP ebenbürdigt ist und wir dadurch keine größeren Probleme uns einfangen würden und auch unsere Webapplikationen weiterhin erstellen können.

Das Umfeld ist gemixed und alles sollte sowohl unter Windows, wie auch unter Linux funktionieren.

Ich bedanke mich schon mal vorab für eure Informationen und freue mich über eure Meinungen!
Perl kann auch im sogenannten Taint-Modus laufen, was zusätzliche Sicherheit bietet. Perl läuft auch sowohl unter Linux als auch unter Windows...

Auf meiner Seite http://perlseiten.renee-baecker.de findest Du noch mehr pdfs mit Informationen und das Wiki der Perl-Community.de umfasst mittlerweile auch sehr viele Artikel (http://wiki.perl-community.de )

Viel Spaß mit Perl!

Bei Fragen kannst Du ja wieder hier posten ;)
 
Hallo,

ich muss ersteinmal sagen, vielen Dank für eure großartigen Antworten - super schnell und sehr präzise! Echt klasse!!

Auch ein großes Dankeschön an eure Links und die PDFs beide werden mir bestimmt weiterhelfen!

Ich werde dies nun mal bündel und weiterleiten - inhouse - und danns chauen wie es weiter gehen wird. Dann werden schon die ersten Fragen auftauchen ;-]

Also danke für euere ausführlichen Antworten! :)
 
Zurück