Quale versione di Perl dovrei usare su Windows? [chiuso]


98

Il sito web win32.perl.org fornisce riferimenti a diverse distribuzioni Perl per MS Windows.

Uso ActivePerl da ActiveState da molto tempo, ma recentemente sono passato a Strawberry Perl .

IMHO L'unico vantaggio che Active Perl ha ancora su Strawberry Perl è il fatto che viene fornito con Perl Tk, il che significa che è facile da installare Develop :: ptkdb, il debugger grafico. Oltre a questo, penso che Strawberry Perl abbia tutti i vantaggi.


Da questo post ho iniziato a ricompattare Strawberry Perl con molti moduli aggiuntivi, inclusi Moose, Dancer e Padre. I lettori potrebbero prendere in considerazione anche questo: dwimperl.com
szabgab

Risposte:


80

Strawberry Perl sta migliorando sempre di più. Un problema che ho avuto ripetutamente con ActiveState è che i miei moduli a volte non riescono a installarsi perché ho bisogno di un aggiornamento a un modulo principale, ma non lo consentono. Pertanto, chiunque non utilizzi Windows può utilizzare il mio codice, ma non può farlo con Perl di ActiveState.

ActiveState ha anche un sistema di compilazione molto losco che spesso non riesce a riportare esattamente il motivo per cui un modulo non è riuscito a creare. Ero così stanco di inviare e-mail e chiedere queste informazioni che alla fine ho rinunciato. Voglio che il mio codice venga eseguito su Windows, ma se ActiveState non mi fornisce queste informazioni e non mi dà alcuna opzione per l'aggiornamento dei moduli principali, non posso usarlo. Alcuni dei miei moduli NON hanno errori di compilazione su alcun sistema operativo, ad eccezione di quelli con ActiveState Perl. Supporta Strawberry Perl e non preoccuparti di ActiveState.

Se ActiveState ha corretto il proprio sistema di compilazione e la politica di "nessun aggiornamento ai moduli principali", vale la pena rivisitarla.


8
È possibile aggiornare i moduli principali da AS Perl 5.8.8 build 518 (rilasciato a gennaio 2007). Hanno anche aggiornato il loro sistema di compilazione CPAN nel 2008, ma non so esattamente quando.
Alexandr Ciornii

1
Strawberry Perl è fantastico. Tuttavia, se usi MSys Bash come shell, c'è un problema noto che i comandi come cpannon funzionano.
Colonel Panic

30

Non esiste una distribuzione Perl single-best. Il Vanilla Perl ( Perl trasferibile e ridistribuibile) e il Strawberry Perl più adatto agli sviluppatori hanno un potenziale significativo.

Tuttavia, c'è un'ottima ragione per cui ActivePerl è così popolare. I vantaggi si presentano principalmente sotto forma di facilità di distribuzione per gli utenti finali (non è necessario alcun compilatore per utilizzare il loro gestore di pacchetti, PPM). ActiveState PDK (Perl Development Kit) è anche un modo molto carino per confezionare un binario Windows completo che non richiede l'installazione di Perl sulla macchina dell'utente.

Sfortunatamente, molti moduli CPAN molto belli (come i collegamenti Perl per OpenSSL) non sono disponibili tramite il repository di ActiveState.

Come la maggior parte delle cose, dovresti fare la tua selezione in base alla distribuzione che meglio soddisfa le tue esigenze.


PerlApp sembra uno strumento utile (non l'ho confrontato con Par :: Packer), ma il PDK in cui è disponibile ha un prezzo di $ 300.
Nate Glenn

17

Uso principalmente ActivePerl, ma mi piace molto dove è diretto Strawberry Perl. Mi piace il fatto che la shell cpan "funzioni" e non devo saltare attraverso un mucchio di cerchi per installare i moduli XS. (es. ExtUtils :: FakeConfig, sebbene sia meno necessario nelle build ActivePerl più recenti.) Sono anche entusiasta della possibilità di Perl su un thumbdrive. La versione per sviluppatori di Portable Perl è già abbastanza utilizzabile.

Sono d'accordo che il vantaggio principale di ActivePerl è Tk out of the box, ma nota che a partire dalla 5.10 ActivePerl non viene più fornito con Tk per impostazione predefinita. Viene invece fornito con Tkx.


13

Il futuro è sicuramente Strawberry Perl. Qualunque cosa tu scelga (e questo problema non è esclusivo di Windows), se stai distribuendo il risultato finale ad altre macchine, dovrai stare attento per quanto riguarda le istruzioni di installazione / installazione fornite.


6

Strawberry Perl è più simile a Perl su * nix. Viene fornito con MinGW che potrebbe essere utile da solo. I moduli Perl possono anche essere installati con ppm o cpan.


1
Nota: se installi mingw insieme a strawberry perl, tieni presente che strawberry perl potrebbe utilizzare versioni diverse delle app minsys. Ho avuto alcuni grossi problemi nel convincere Strawberry Perl a compilare Win32 :: OLE e altri moduli fino a quando non ho rimosso mingw dal mio percorso.
Robert P,

Se vuoi veramente Perl su Windows come Perl su * nix, installa SUA / SFU (non installare il Perl fornito con) e usa il Perl di Debian Interix / pkgsrc-interix.
MkV

4

Preferisco di gran lunga Strawberry Perl. Per prima cosa, installa gcc come parte di mingwin, in modo che tu possa installare direttamente da CPAN.

Ho usato perl di ActiveState per un po ', ma ho avuto un sacco di instabilità da una macchina all'altra nonostante fossero (apparentemente) configurate in modo identico. Anche la confezione del loro modulo PPM ha lasciato l'amaro in bocca. Rende estremamente semplice la gestione dei pacchetti, ma fai affidamento su di essi per aggiornare PPM dopo gli aggiornamenti CPAN. Inoltre, PPM non è in alcun modo il contenuto completo del CPAN; L'ultima volta che ho usato ActivePerl, ho avuto difficoltà a trovare tutti i moduli di cui avevo bisogno, e quelli che c'erano spesso erano una vecchia versione.


2
Sono curioso di sapere cosa ha valutato un voto negativo.
gWaldo

3

Uso sempre Cygwin (xterms con bash sono molto meglio di cmd windows) e il Perl che lo accompagna. Installo i moduli Perl con la shell CPAN (il comando "cpan"); funziona bene.


3

ActiveState Perl è stato considerato di fatto il Perl di Windows per un bel po 'di tempo. Sebbene abbia molti difetti e molti di noi usano qualcos'altro, rimane molto popolare. Se dovessi creare codice Perl da eseguire su una macchina Windows (diversa dalla tua), prenderei in considerazione di scriverlo con un occhio verso un'installazione predefinita (o come predefinita come posso ottenerlo) AS Perl che lo esegue. Qualsiasi altra cosa e stai introducendo barriere all'ingresso per altri che tentano di utilizzare la tua app in un secondo momento.


AFAIK, PAR pp funziona bene con Strawberry, il che è un grande vantaggio in termini di distribuzione delle tue app perché IIUC avrai bisogno di una licenza OEM per poter distribuire app compilate pp se usi le loro DLL.
Sinan Ünür

3
@ Sinan, la tua dichiarazione sulla licenza ActivePerl e PAR non è corretta. Vedere la clausola 4 della licenza 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 ... potrei giurare che una versione precedente non lo consentiva, ma non sono nemmeno sicuro di ricordare correttamente. Grazie per la correzione.
Sinan Ünür

2

Ho avuto grossi problemi con Strawberry e sentivo che non c'era supporto. Le brave persone di PerlMonks non potevano aiutarmi e ho rinunciato. Se questa pagina ti lascia con una certa mancanza di fiducia, ecco la tua risposta.


1

Il codice che scrivo arriva nelle aziende Fortune 500, quindi una sensazione "aziendale" è utile. Finora ho usato ActivePerl e ha funzionato bene sia per gli strumenti interni che per la distribuzione a quei clienti di grandi dimensioni.


1

Sto usando Active State Perl 5.014, che funziona bene.

Il problema è che non ha l'ultima versione di Padre (l'IDE, l'ambiente debbugging).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.