Quelle version de Perl dois-je utiliser sous Windows? [fermé]


98

Le site Web win32.perl.org fournit des références à plusieurs distributions Perl pour MS Windows.

J'utilise ActivePerl depuis ActiveState depuis longtemps mais je suis récemment passé à Strawberry Perl .

IMHO Le seul avantage qu'Active Perl a encore sur Strawberry Perl est le fait qu'il est livré avec Perl Tk, ce qui signifie qu'il est facile à installer Devel :: ptkdb, le débogueur graphique. A part ça, je pense que Strawberry Perl a tous les avantages.


Depuis cet article, j'ai commencé à réemballer Strawberry Perl avec de nombreux modules supplémentaires, notamment Moose, Dancer et Padre. Les lecteurs voudront peut-être aussi considérer ceci: dwimperl.com
szabgab

Réponses:


80

Strawberry Perl est de mieux en mieux. Un problème que j'ai eu à plusieurs reprises avec ActiveState est que mes modules échouent parfois à s'installer parce que j'ai besoin d'une mise à niveau vers un module principal, mais ils ne le permettent pas. Ainsi, tous ceux qui n'utilisent pas Windows peuvent utiliser mon code, mais ils ne peuvent pas le faire avec Perl d'ActiveState.

ActiveState a également un système de construction très douteux qui souvent ne parvient pas à indiquer exactement pourquoi un module n'a pas pu être construit. J'étais tellement fatigué d'envoyer des courriels et de demander ces informations que j'ai finalement abandonné. Je veux que mon code s'exécute sur Windows, mais si ActiveState ne me fournit pas ces informations et ne me donne aucune option pour mettre à niveau les modules de base, je ne peux tout simplement pas l'utiliser. Certains de mes modules n'ont AUCUN échec de construction sur aucun système d'exploitation - sauf ceux avec ActiveState Perl. Soutenez Strawberry Perl et ne vous inquiétez pas d'ActiveState.

Si ActiveState a corrigé son système de construction et sa politique de «pas de mise à niveau vers les modules principaux», cela vaut la peine d'être revisité.


8
Il est possible de mettre à niveau les modules de base depuis AS Perl 5.8.8 build 518 (publié en janvier 2007). Ils ont également mis à niveau leur système de construction CPAN en 2008, mais je ne sais pas exactement quand.
Alexandr Ciornii

1
Strawberry Perl est génial. Cependant, si vous utilisez MSys Bash comme shell, il existe un problème connu selon lequel des commandes telles que cpanne fonctionnent pas.
Colonel Panic

30

Il n'y a pas de meilleure distribution Perl. Vanilla Perl ( Perl déplaçable et redistribuable) et Strawberry Perl plus convivial pour les développeurs ont un potentiel important.

Cependant, il y a une très bonne raison pour laquelle ActivePerl est si populaire. Les avantages se présentent principalement sous la forme d'une facilité de déploiement pour vos utilisateurs finaux (pas de compilateur nécessaire pour utiliser leur gestionnaire de packages, PPM). L'ActiveState PDK (Perl Development Kit) est également un très bon moyen d'emballer un binaire Windows complet qui ne nécessite pas l'installation de Perl sur la machine de l'utilisateur.

Malheureusement, de nombreux modules CPAN très intéressants (comme les liaisons Perl pour OpenSSL) ne sont pas disponibles via le référentiel d'ActiveState.

Comme la plupart des choses, vous devez faire votre choix en fonction de la distribution qui répond le mieux à vos besoins.


PerlApp semble être un outil utile (je ne l'ai pas comparé à Par :: Packer), mais le PDK dans lequel il est livré a un prix de 300 $.
Nate Glenn

17

J'utilise principalement ActivePerl, mais j'aime vraiment la direction que prend Strawberry Perl. J'adore le fait que le shell cpan "fonctionne juste" et je n'ai pas à passer par un tas de cerceaux pour installer les modules XS. (par exemple ExtUtils :: FakeConfig, bien que ce soit moins nécessaire dans les versions plus récentes d'ActivePerl.) Je suis également enthousiasmé par la possibilité de Perl sur une clé USB. La version dev de Portable Perl est déjà assez utilisable.

Je suis d'accord que le principal avantage d'ActivePerl est Tk prêt à l'emploi, mais notez qu'à partir de 5.10 ActivePerl n'est plus livré avec Tk par défaut. Il est livré avec Tkx à la place.


13

L'avenir est définitivement Strawberry Perl. Quoi que vous choisissiez (et ce problème n'est pas propre à Windows), si vous distribuez le résultat final à d'autres machines, vous devrez faire attention aux instructions d'installation / d'installation que vous fournissez.


6

Strawberry Perl ressemble plus à Perl sur * nix. Il est livré avec MinGW qui pourrait être utile seul. Les modules Perl peuvent également être installés avec ppm ou cpan.


1
Remarque: si vous installez mingw aux côtés de Strawberry Perl, sachez que Strawberry Perl utilise peut-être différentes versions des applications minsys. J'ai eu quelques problèmes majeurs pour obtenir de la fraise perl pour construire Win32 :: OLE et d'autres modules jusqu'à ce que je supprime mingw de mon chemin.
Robert P

Si vous voulez vraiment Perl sur Windows comme Perl sur * nix, installez SUA / SFU (n'installez pas le Perl fourni avec) et utilisez Perl de Debian Interix / pkgsrc-interix.
MkV

4

Je préfère de loin Strawberry Perl. D'une part, il installe gcc dans le cadre de mingwin, afin que vous puissiez l'installer directement à partir du CPAN.

J'ai utilisé perl d'ActiveState pendant un certain temps, mais j'ai eu beaucoup de flocons d'une machine à l'autre malgré leur configuration (apparemment) identique. L'emballage de leur module PPM a également laissé un mauvais goût. Cela rend la gestion des packages extrêmement simple, mais vous comptez sur eux pour mettre à jour PPM après les mises à jour CPAN. De plus, PPM n'est en aucun cas le contenu complet du CPAN; La dernière fois que j'ai utilisé ActivePerl, j'ai eu du mal à trouver tous les modules dont j'avais besoin, et ceux qui étaient là étaient souvent une ancienne version.


2
Je suis curieux de savoir ce qui a évalué un vote négatif.
gWaldo

3

J'utilise toujours Cygwin (les xterms avec bash sont tellement meilleurs que les fenêtres cmd) et le Perl qui l'accompagne. J'installe des modules Perl avec le shell CPAN (la commande "cpan"); ça fonctionne bien.


3

ActiveState Perl a été considéré comme le Perl Windows de facto pendant un certain temps. Bien qu'il ait beaucoup de défauts et que beaucoup d'entre nous utilisent autre chose, il reste très populaire. Si vous construisiez du code Perl pour être exécuté sur une machine Windows (autre que la vôtre), j'envisagerais de l'écrire avec un œil sur une installation par défaut (ou par défaut comme je pourrais l'obtenir) AS Perl en l'exécutant. Toute autre chose et vous introduisez des barrières à l'entrée pour les autres qui essaient d'utiliser votre application plus tard.


AFAIK, PAR pp fonctionne très bien avec Strawberry, ce qui est un grand avantage en termes de distribution de vos propres applications car IIUC vous aurez besoin d'une licence OEM pour pouvoir distribuer des applications compilées pp si vous utilisez leurs DLL.
Sinan Ünür

3
@Sinan, votre déclaration concernant les licences ActivePerl et PAR est incorrecte. Voir la clause 4 de la licence 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 ... Je pourrais jurer qu'une version antérieure ne le permettait pas, mais je ne suis même pas sûr de me souvenir correctement. Merci pour la correction.
Sinan Ünür

2

J'avais de gros problèmes avec Strawberry et je sentais qu'il n'y avait pas de soutien. Les bonnes personnes de PerlMonks ne pouvaient pas m'aider et j'ai abandonné. Si cette page vous laisse un certain manque de confiance, voici votre réponse.


1

Le code que j'écris atterrit dans les entreprises Fortune 500, donc un sentiment "d'entreprise" est utile. J'ai utilisé ActivePerl jusqu'à présent, et cela a bien fonctionné à la fois pour l'outillage interne et pour la distribution à ces grands clients.


1

J'utilise Active State Perl 5.014, qui fonctionne bien.

Le problème est qu'il n'a pas la dernière version de Padre (l'IDE, l'environnement de débogage).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.