Welche Perl-Version soll ich unter Windows verwenden? [geschlossen]

98

Die Website win32.perl.org enthält Verweise auf verschiedene Perl-Distributionen für MS Windows.

Ich habe lange Zeit ActivePerl von ActiveState verwendet, aber kürzlich bin ich zu Strawberry Perl gewechselt .

IMHO Der einzige Vorteil, den Active Perl gegenüber Strawberry Perl noch hat, ist die Tatsache, dass es mit Perl Tk geliefert wird, was bedeutet, dass Devel :: ptkdb, der grafische Debugger, einfach zu installieren ist . Abgesehen davon denke ich, dass Strawberry Perl alle Vorteile hat.

szabgab
quelle
Seit diesem Beitrag habe ich begonnen, Strawberry Perl mit vielen zusätzlichen Modulen neu zu verpacken, darunter Moose, Dancer und Padre. Leser sollten dies auch berücksichtigen
szabgab

Antworten:

80

Strawberry Perl wird immer besser. Ein Problem, das ich wiederholt mit ActiveState hatte, ist, dass meine Module manchmal nicht installiert werden können, weil ich ein Upgrade auf ein Kernmodul benötige, aber das wird nicht zugelassen. Daher kann jeder, der Windows nicht verwendet, meinen Code verwenden, aber mit ActiveStates Perl nicht.

ActiveState verfügt auch über ein sehr zweifelhaftes Build-System, das häufig nicht genau angibt, warum ein Modul nicht erstellt werden konnte. Ich hatte es so satt, E-Mails zu schreiben und nach diesen Informationen zu fragen, dass ich sie schließlich aufgab. Ich möchte, dass mein Code unter Windows ausgeführt wird, aber wenn ActiveState mir diese Informationen nicht zur Verfügung stellt und mir keine Option zum Aktualisieren von Kernmodulen bietet, kann ich sie einfach nicht verwenden. Einige meiner Module weisen unter keinem Betriebssystem Buildfehler auf - außer denen mit ActiveState Perl. Unterstützen Sie Strawberry Perl und machen Sie sich keine Sorgen um ActiveState.

Wenn ActiveState das Build-System und die Richtlinie "Kein Upgrade auf Kernmodule" behoben hat, lohnt es sich, diese erneut zu überprüfen.

Ovid
quelle
8
Es ist möglich, Kernmodule von AS Perl 5.8.8 Build 518 (veröffentlicht im Januar 2007) zu aktualisieren. Sie haben 2008 auch ihr CPAN-Build-System aktualisiert, aber ich weiß nicht genau, wann.
Alexandr Ciornii
1
Strawberry Perl ist großartig. Wenn Sie jedoch MSys Bash als Shell verwenden, ist ein Problem bekannt , bei dem Befehle wie z. B. cpannicht funktionieren.
Colonel Panic
30

Es gibt keine beste Perl-Distribution. Vanilla Perl (verschiebbares, weiterverteilbares Perl) und das entwicklerfreundlichere Strawberry Perl haben ein erhebliches Potenzial.

Es gibt jedoch einen sehr guten Grund, warum ActivePerl so beliebt ist. Die Vorteile liegen hauptsächlich in der einfachen Bereitstellung für Ihre Endbenutzer (kein Compiler erforderlich, um deren Paketmanager PPM zu verwenden). Das ActiveState PDK (Perl Development Kit) ist auch eine sehr gute Möglichkeit, eine vollständige Windows-Binärdatei zu packen, für die kein Perl auf dem Computer des Benutzers installiert sein muss.

Leider sind viele sehr schöne CPAN-Module (wie die Perl-Bindungen für OpenSSL) nicht über das ActiveState-Repository verfügbar.

Wie die meisten Dinge sollten Sie Ihre Auswahl basierend darauf treffen, welche Distribution Ihren Anforderungen am besten entspricht.

Darren Meyer
quelle
PerlApp scheint ein nützliches Tool zu sein (ich habe es nicht mit Par :: Packer verglichen), aber das PDK hat einen Preis von 300 US-Dollar.
Nate Glenn
17

Ich benutze hauptsächlich ActivePerl, aber ich mag es wirklich, wohin Strawberry Perl geht. Ich finde es toll, dass die cpan-Shell "einfach funktioniert" und ich nicht durch ein paar Reifen springen muss, um XS-Module zu installieren. (zB ExtUtils :: FakeConfig, obwohl dies in neueren ActivePerl-Builds weniger erforderlich ist.) Ich freue mich auch über die Möglichkeit von Perl auf einem USB-Stick. Die Entwicklerversion von Portable Perl ist bereits ziemlich brauchbar.

Ich bin damit einverstanden, dass der Hauptvorteil von ActivePerl Tk ist, aber beachten Sie, dass ActivePerl ab 5.10 standardmäßig nicht mehr mit Tk geliefert wird. Es wird stattdessen mit Tkx geliefert.

Michael Carman
quelle
13

Die Zukunft ist definitiv Strawberry Perl. Unabhängig davon, welche Option Sie gewählt haben (und dieses Problem tritt nicht nur bei Windows auf), müssen Sie beim Verteilen des Endergebnisses auf andere Computer vorsichtig mit den von Ihnen bereitgestellten Installations- / Installationsanweisungen sein.

Penfold
quelle
6

Strawberry Perl ist eher wie Perl auf * nix. Es kommt mit MinGW, das für sich genommen nützlich sein könnte. Die Perl-Module können auch mit ppm oder cpan installiert werden.

Rob Kam
quelle
1
Hinweis: Wenn Sie mingw neben Erdbeer-Perl installieren, beachten Sie, dass Erdbeer-Perl möglicherweise verschiedene Versionen der minsys-Apps verwendet. Ich hatte einige große Probleme, Erdbeer-Perl dazu zu bringen, Win32 :: OLE und andere Module zu erstellen, bis ich mingw von meinem Pfad entfernte.
Robert P
Wenn Sie Perl unter Windows wirklich wie Perl unter * nix wollen, installieren Sie SUA / SFU (installieren Sie nicht das mitgelieferte Perl) und verwenden Sie Perl von Debian Interix / pkgsrc-interix.
MkV
4

Ich bevorzuge bei weitem Strawberry Perl. Zum einen wird gcc als Teil von mingwin installiert, sodass Sie direkt von CPAN aus installieren können.

Ich habe ActiveStates Perl für eine Weile verwendet, aber ich hatte viel Flakiness von einem Computer zum anderen, obwohl sie (scheinbar) identisch konfiguriert waren. Auch die Verpackung ihrer PPM-Module hinterließ einen schlechten Geschmack. Das Verwalten von Paketen ist kinderleicht, Sie verlassen sich jedoch darauf, dass sie PPM nach CPAN-Updates aktualisieren. Außerdem ist PPM keineswegs der vollständige Inhalt des CPAN. Als ich ActivePerl das letzte Mal verwendet hatte, fiel es mir schwer, alle benötigten Module zu finden, und diejenigen, die es gab, waren oft eine alte Version.

gWaldo
quelle
2
Ich bin gespannt, was eine Abwertung bewertet hat.
GWaldo
3

Ich benutze immer Cygwin (Xterms mit Bash sind so viel besser als Cmd-Fenster) und das dazugehörige Perl. Ich installiere Perl-Module mit der CPAN-Shell (der Befehl "cpan"). es funktioniert gut.

Reinierpost
quelle
3

ActiveState Perl gilt seit einiger Zeit als de facto Windows Perl. Obwohl es viele Mängel aufweist und viele von uns etwas anderes verwenden, bleibt es sehr beliebt. Wenn Sie Perl-Code für die Ausführung auf einem Windows-Computer (außer Ihrem eigenen) erstellen würden, würde ich in Betracht ziehen, ihn mit Blick auf eine Standardinstallation (oder so standardmäßig wie möglich) zu schreiben, die ihn ausführt. Alles andere und Sie führen Eintrittsbarrieren für andere ein, die später versuchen, Ihre App zu verwenden.

Phreakre
quelle
AFAIK, PAR pp funktioniert gut mit Strawberry, was ein großer Vorteil für die Verteilung Ihrer eigenen Apps ist, da IIUC eine OEM-Lizenz benötigt, um pp-kompilierte Apps verteilen zu können, wenn Sie deren DLLs verwenden.
Sinan Ünür
3
@ Sinan, Ihre Aussage zu ActivePerl-Lizenzierung und PAR ist falsch. Siehe Klausel 4 der Lizenz The license also allows You to redistribute parts of the Package as part of an application generated by wrapping tools such as PAR, PerlApp or Perl2Exe. However, this License does not allow You to (a) redistribute the Package as a whole, (b) use its parts to create a language distribution, or (c) redistribute the PerlScript, Perl for ISAPI or PerlEx components with Your application. activestate.com/activeperl/license
daotoad
@daotoad Hmmmm ... Ich könnte schwören, dass eine frühere Version dies nicht zuließ, aber ich bin mir nicht einmal sicher, ob ich mich richtig erinnere. Danke für die Verbesserung.
Sinan Ünür
2

Ich hatte große Probleme mit Strawberry und ich hatte das Gefühl, dass es keine Unterstützung gab. Die guten Leute bei PerlMonks konnten mir nicht helfen und ich gab auf. Wenn diese Seite Ihnen einen gewissen Mangel an Vertrauen hinterlässt, gibt es Ihre Antwort.

AmbroseChapel
quelle
1

Der Code, den ich schreibe, landet in Fortune 500-Unternehmen, daher ist ein "Unternehmensgefühl" hilfreich. Ich habe ActivePerl bisher verwendet und es hat sowohl für interne Tools als auch für die Verteilung an diese großen Kunden gut funktioniert.

aczarnowski
quelle
1

Ich verwende Active State Perl 5.014, was in Ordnung funktioniert.

Das Problem ist, dass es nicht die neueste Version von Padre gibt (die IDE, Debbugging-Umgebung).

Helen Craigman
quelle