Versi Perl manakah yang harus saya gunakan di Windows? [Tutup]

98

Situs web win32.perl.org menyediakan referensi ke beberapa distribusi Perl untuk MS Windows.

Untuk waktu yang lama saya telah menggunakan ActivePerl dari ActiveState tetapi baru-baru ini saya beralih ke Strawberry Perl .

IMHO Satu-satunya keuntungan yang masih dimiliki Active Perl dibandingkan Strawberry Perl adalah kenyataan bahwa ia dilengkapi dengan Perl Tk yang berarti mudah untuk menginstal Devel :: ptkdb the graphical debugger. Selain itu, menurut saya Strawberry Perl memiliki semua kelebihan.

szabgab.dll
sumber
Sejak posting ini saya mulai mengemas ulang Strawberry Perl dengan banyak modul tambahan, termasuk Moose, Dancer dan Padre. Pembaca mungkin ingin mempertimbangkan ini juga: dwimperl.com
szabgab

Jawaban:

80

Strawberry Perl menjadi lebih baik dan lebih baik. Satu masalah yang saya alami berulang kali dengan ActiveState adalah bahwa modul saya terkadang gagal diinstal karena saya memerlukan peningkatan ke modul inti, tetapi modul tidak mengizinkannya. Jadi, setiap orang yang tidak menggunakan Windows dapat menggunakan kode saya, tetapi mereka tidak dapat melakukannya dengan Perl ActiveState.

ActiveState juga memiliki sistem build yang sangat cerdik yang sering kali gagal melaporkan secara pasti mengapa modul gagal dibuat. Saya sangat lelah mengirim email dan meminta informasi ini sehingga saya akhirnya menyerah. Saya ingin kode saya berjalan di Windows, tetapi jika ActiveState tidak memberi saya informasi itu dan tidak memberi saya opsi apa pun untuk memutakhirkan modul inti, saya tidak bisa menggunakannya. Beberapa modul saya TIDAK memiliki kegagalan build pada sistem operasi apa pun - kecuali yang dengan ActiveState Perl. Dukung Strawberry Perl dan jangan khawatir tentang ActiveState.

Jika ActiveState telah memperbaiki sistem build mereka dan kebijakan 'tidak ada peningkatan ke modul inti', ada baiknya untuk meninjau kembali.

Ovid
sumber
8
Dimungkinkan untuk mengupgrade modul inti dari AS Perl 5.8.8 build 518 (dirilis pada Januari 2007). Mereka juga mengupgrade sistem build CPAN mereka pada tahun 2008, tetapi saya tidak tahu persis kapan.
Alexandr Ciornii
1
Strawberry Perl sangat bagus. Namun, jika Anda menggunakan MSys Bash sebagai shell Anda, ada masalah yang diketahui bahwa perintah seperti cpantidak berfungsi.
Kolonel Panic
30

Tidak ada distribusi Perl terbaik. Vanilla Perl ( Perl yang dapat direlokasi, didistribusikan ulang), dan Strawberry Perl yang lebih ramah pengembang memiliki potensi yang signifikan.

Namun, ada alasan yang sangat bagus mengapa ActivePerl sangat populer. Keuntungannya sebagian besar datang dalam bentuk kemudahan penerapan untuk pengguna akhir Anda (tidak perlu kompiler untuk menggunakan manajer paket mereka, PPM). PDK ActiveState (Perl Development Kit) juga merupakan cara yang sangat bagus untuk mengemas biner Windows lengkap yang tidak memerlukan Perl untuk diinstal pada mesin pengguna.

Sayangnya, banyak modul CPAN yang sangat bagus (seperti pengikatan Perl untuk OpenSSL) tidak tersedia melalui repositori ActiveState.

Seperti kebanyakan hal, Anda harus membuat pilihan berdasarkan distribusi mana yang paling sesuai dengan kebutuhan Anda.

Darren Meyer
sumber
PerlApp memang tampak seperti alat yang berguna (saya belum membandingkannya dengan Par :: Packer), tetapi PDK yang disertakan memiliki label harga $ 300.
Nate Glenn
17

Saya terutama menggunakan ActivePerl, tapi saya sangat suka kemana arah Strawberry Perl. Saya suka bahwa cpan shell "hanya berfungsi" dan saya tidak perlu melewati banyak rintangan untuk menginstal modul XS. (misalnya ExtUtils :: FakeConfig, meskipun itu kurang diperlukan di build ActivePerl yang lebih baru.) Saya juga senang dengan kemungkinan Perl di thumbdrive. Rilis dev Portable Perl sudah cukup bisa digunakan.

Saya setuju bahwa keuntungan utama dari ActivePerl adalah Tk di luar kotak, tetapi perhatikan bahwa mulai 5.10 ActivePerl tidak lagi dikirimkan dengan Tk secara default. Ini dikirimkan dengan Tkx sebagai gantinya.

Michael Carman
sumber
13

Masa depan pasti Strawberry Perl. Apa pun yang Anda pilih (dan masalah ini tidak unik untuk Windows), jika Anda mendistribusikan hasil akhirnya ke komputer lain, Anda harus berhati-hati sehubungan dengan instruksi penginstal / instalasi yang Anda berikan.

Penfold
sumber
6

Strawberry Perl lebih mirip Perl on * nix. Muncul dengan MinGW yang bisa berguna sendiri. Modul Perl juga dapat diinstal dengan ppm atau cpan.

Rob Kam
sumber
1
Catatan: jika Anda menginstal mingw bersama perl strawberry, harap diingat bahwa perl strawberry mungkin menggunakan versi berbeda dari aplikasi minys. Saya mengalami beberapa masalah besar saat mendapatkan perl strawberry untuk membangun Win32 :: OLE dan modul lainnya sampai saya menghapus mingw dari jalur saya.
Robert P
Jika Anda benar-benar menginginkan Perl di Windows seperti Perl di * nix, instal SUA / SFU (jangan instal Perl yang disertakan) dan gunakan Perl Debian Interix / pkgsrc-interix.
MkV
4

Saya sejauh ini lebih suka Strawberry Perl. Pertama, ia menginstal gcc sebagai bagian dari mingwin, sehingga Anda dapat menginstal langsung dari CPAN.

Saya menggunakan perl ActiveState untuk sementara waktu, tetapi saya memiliki banyak kelemahan dari satu mesin ke mesin lainnya meskipun mereka (tampaknya) dikonfigurasi secara identik. Kemasan modul PPM mereka juga meninggalkan rasa tidak enak. Itu membuatnya sangat mudah untuk mengelola paket, tetapi Anda mengandalkannya untuk memperbarui PPM setelah pembaruan CPAN. Selain itu, PPM sama sekali bukan konten CPAN yang lengkap; Terakhir kali saya menggunakan ActivePerl, saya mengalami kesulitan menemukan semua modul yang saya butuhkan, dan yang ada seringkali merupakan versi lama.

gWaldo
sumber
2
Saya ingin tahu apa yang memberi peringkat untuk tidak memilih.
gWaldo
3

Saya selalu menggunakan Cygwin (xterms dengan bash jauh lebih baik daripada windows cmd) dan Perl yang menyertainya. Saya menginstal modul Perl dengan shell CPAN (perintah "cpan"); itu bekerja dengan baik.

reinierpost
sumber
3

ActiveState Perl telah dianggap sebagai Perl Windows de facto cukup lama. Meskipun memiliki banyak kekurangan dan banyak dari kita menggunakan sesuatu yang lain, ini tetap sangat populer. Jika Anda sedang membangun kode Perl untuk dieksekusi pada mesin Windows (selain milik Anda sendiri), saya akan mempertimbangkan untuk menuliskannya dengan memperhatikan default (atau sebagai default yang saya bisa mendapatkannya) sebagai instalasi Perl yang menjalankannya. Ada hal lain dan Anda akan menjadi penghalang masuk bagi orang lain yang mencoba menggunakan aplikasi Anda nanti.

phreakre
sumber
AFAIK, PAR pp bekerja dengan baik dengan Strawberry yang merupakan keuntungan besar dalam hal mendistribusikan aplikasi Anda sendiri karena IIUC Anda memerlukan lisensi OEM untuk dapat mendistribusikan aplikasi yang dikompilasi pp jika Anda menggunakan DLL mereka.
Sinan Ünür
3
@Sinan, pernyataan Anda tentang lisensi ActivePerl dan PAR salah. Lihat klausul 4 dari lisensi 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 ... Saya berani bersumpah bahwa versi sebelumnya tidak mengizinkannya, tetapi saya bahkan tidak yakin apakah saya mengingatnya dengan benar. Terima kasih atas koreksinya.
Sinan Ünür
2

Saya punya masalah besar dengan Strawberry, dan saya merasa tidak ada dukungan. Orang-orang baik di PerlMonks tidak dapat membantu saya, dan saya menyerah. Jika halaman ini membuat Anda kurang percaya diri, inilah jawaban Anda.

AmbroseChapel
sumber
1

Kode yang saya tulis di perusahaan-perusahaan Fortune 500 sehingga perasaan "korporat" sangat membantu. Saya telah menggunakan ActivePerl sejauh ini, dan itu berfungsi dengan baik untuk perkakas internal dan untuk distribusi ke pelanggan besar itu.

aczarnowski
sumber
1

Saya menggunakan Active State Perl 5.014, yang berfungsi dengan baik.

Masalahnya adalah, Padre tidak memiliki versi terbaru (IDE, lingkungan debbugging).

Helen Craigman
sumber