ฉันควรใช้ Perl เวอร์ชันใดบน Windows [ปิด]


98

win32.perl.orgเว็บไซต์ให้อ้างอิงถึงการกระจาย Perl หลาย MS Windows

เป็นเวลานานฉันได้ใช้ ActivePerl จาก ActiveStateแต่เมื่อเร็ว ๆ นี้ผมเปลี่ยน สตรอเบอร์รี่ Perl

IMHO ข้อได้เปรียบเพียงอย่างเดียวที่ Active Perl ยังคงมีอยู่เหนือ Strawberry Perl คือความจริงที่ว่ามันมาพร้อมกับ Perl Tk ซึ่งหมายความว่ามันง่ายต่อการติดตั้ง Devel :: ptkdbตัวแก้ไขจุดบกพร่องแบบกราฟิก นอกเหนือจากนั้นฉันคิดว่า Strawberry Perl มีข้อดีทั้งหมด


ตั้งแต่โพสต์นี้ฉันเริ่มบรรจุ Strawberry Perl ใหม่ด้วยโมดูลเพิ่มเติมมากมายรวมถึง Moose, Dancer และ Padre ผู้อ่านอาจต้องการพิจารณาสิ่งนี้ด้วยเช่นกัน: dwimperl.com
szabgab

คำตอบ:


80

สตรอเบอรี่เพิร์ลกำลังดีขึ้นเรื่อย ๆ ปัญหาหนึ่งที่ฉันเคยพบกับ ActiveState ซ้ำแล้วซ้ำเล่าคือบางครั้งโมดูลของฉันไม่สามารถติดตั้งได้เนื่องจากฉันต้องการอัปเกรดเป็นโมดูลหลัก แต่ไม่อนุญาตให้ทำเช่นนั้น ดังนั้นทุกคนที่ไม่ได้ใช้ Windows สามารถใช้รหัสของฉันได้ แต่พวกเขาไม่สามารถทำได้ด้วย Perl ของ ActiveState

ActiveState ยังมีระบบการสร้างที่หลบหลีกซึ่งมักจะไม่สามารถรายงานได้อย่างชัดเจนว่าเหตุใดโมดูลจึงไม่สามารถสร้างได้ ฉันเบื่อกับการส่งอีเมลและขอข้อมูลนี้มากจนในที่สุดฉันก็ยอมแพ้ ฉันต้องการให้โค้ดของฉันทำงานบน Windows แต่ถ้า ActiveState ไม่ให้ข้อมูลนั้นแก่ฉันและไม่ได้ให้ตัวเลือกใด ๆ ในการอัปเกรดโมดูลหลักฉันก็ไม่สามารถใช้งานได้ โมดูลบางส่วนของฉันไม่มีการสร้างความล้มเหลวในระบบปฏิบัติการใด ๆ ยกเว้นโมดูลที่มี ActiveState Perl สนับสนุน Strawberry Perl และไม่ต้องกังวลกับ ActiveState

หาก ActiveState ได้แก้ไขระบบบิลด์และนโยบาย 'ไม่อัปเกรดเป็นโมดูลหลัก' คุณควรกลับมาทบทวนอีกครั้ง


8
เป็นไปได้ที่จะอัพเกรดโมดูลหลักจาก AS Perl 5.8.8 บิลด์ 518 (เปิดตัวในเดือนมกราคม 2550) พวกเขาอัปเกรดระบบสร้าง CPAN ในปี 2008 ด้วย แต่ฉันไม่รู้ว่าเมื่อไหร่
Alexandr Ciornii

1
สตรอเบอรี่เพิร์ลก็เยี่ยม อย่างไรก็ตามหากคุณใช้ MSys Bash เป็นเชลล์มีปัญหาที่ทราบว่าคำสั่งต่างๆเช่นcpanไม่ทำงาน
พันเอก Panic

30

ไม่มีการแจกแจง Perl ที่ดีที่สุดเพียงครั้งเดียว Vanilla Perl ( Perl ที่เปลี่ยนตำแหน่งได้ , แจกจ่ายต่อได้) และStrawberry Perl ที่เป็นมิตรกับนักพัฒนามากกว่ามีศักยภาพที่สำคัญ

อย่างไรก็ตามมีเหตุผลที่ดีมากว่าทำไมActivePerlจึงได้รับความนิยมอย่างมาก ข้อดีส่วนใหญ่มาในรูปแบบของความสะดวกในการปรับใช้สำหรับผู้ใช้ปลายทางของคุณ (ไม่จำเป็นต้องใช้คอมไพเลอร์ในการใช้ตัวจัดการแพ็คเกจ PPM) ActiveState PDK (Perl Development Kit) เป็นวิธีที่ดีมากในการบรรจุไบนารี Windows ที่สมบูรณ์ซึ่งไม่จำเป็นต้องติดตั้ง Perl ใด ๆ ในเครื่องของผู้ใช้

น่าเสียดายที่โมดูล CPAN ที่ดีมาก ๆ (เช่นการผูก Perl สำหรับ OpenSSL) ไม่สามารถใช้ได้ผ่านที่เก็บของ ActiveState

เช่นเดียวกับสิ่งต่างๆส่วนใหญ่คุณควรเลือกตามการกระจายสินค้าที่ตรงกับความต้องการของคุณมากที่สุด


PerlApp ดูเหมือนจะเป็นเครื่องมือที่มีประโยชน์ (ฉันไม่ได้เปรียบเทียบกับ Par :: Packer) แต่ PDK ที่มาพร้อมกับป้ายราคา $ 300
Nate Glenn

17

ฉันใช้ ActivePerl เป็นหลัก แต่ฉันชอบที่ที่ Strawberry Perl มุ่งหน้าไปมาก ฉันชอบที่ cpan shell "ใช้งานได้" และฉันไม่ต้องข้ามห่วงมากมายเพื่อติดตั้งโมดูล XS (เช่น ExtUtils :: FakeConfig แม้ว่าจะมีความจำเป็นน้อยกว่าในรุ่นล่าสุดของ ActivePerl) ฉันยังรู้สึกตื่นเต้นเกี่ยวกับความเป็นไปได้ของ Perl บนทัมไดรฟ์ เวอร์ชันพัฒนาของPortable Perlนั้นใช้งานได้ค่อนข้างดีอยู่แล้ว

ฉันยอมรับว่าข้อได้เปรียบหลักของ ActivePerl คือ Tk นอกกรอบ แต่โปรดทราบว่าตั้งแต่ 5.10 ActivePerl จะไม่มาพร้อมกับ Tk ตามค่าเริ่มต้นอีกต่อไป มาพร้อมกับ Tkx แทน


13

อนาคตคือ Strawberry Perl แน่นอน ไม่ว่าคุณจะเลือกแบบใด (และปัญหานี้ไม่ซ้ำกับ Windows) หากคุณกำลังแจกจ่ายผลลัพธ์สุดท้ายไปยังเครื่องอื่นคุณจะต้องระมัดระวังเกี่ยวกับคำแนะนำในการติดตั้ง / การติดตั้งที่คุณให้ไว้


6

Strawberry Perlเป็นเหมือน Perl บน * nix มาพร้อมกับMinGWซึ่งอาจมีประโยชน์ในตัวเอง โมดูล Perl ยังสามารถติดตั้งด้วย ppm หรือ cpan


1
หมายเหตุ: หากคุณติดตั้ง mingw ควบคู่ไปกับ strawberry perl โปรดทราบว่า strawberry perl อาจใช้แอป minsys เวอร์ชันต่างๆ ฉันมีปัญหาสำคัญบางอย่างในการรับ strawberry perl เพื่อสร้าง Win32 :: OLE และโมดูลอื่น ๆ จนกว่าฉันจะลบ mingw ออกจากเส้นทางของฉัน
Robert P

หากคุณต้องการ Perl บน Windows จริงๆเช่น Perl บน * nix ให้ติดตั้ง SUA / SFU (อย่าติดตั้ง Perl ที่มาพร้อมกับ) และใช้ Perl ของ Debian Interix / pkgsrc-interix
MkV

4

ฉันใช้ Cygwin เสมอ (xterms กับ bash นั้นดีกว่า cmd windows มาก) และ Perl ที่มาพร้อมกับมัน ฉันติดตั้งโมดูล Perl ด้วยเชลล์ CPAN (คำสั่ง "cpan"); มันใช้งานได้ดี


4

ฉันชอบ Strawberry Perl มากกว่า สำหรับหนึ่งมันติดตั้ง gcc เป็นส่วนหนึ่งของ mingwin เพื่อให้คุณสามารถติดตั้งได้โดยตรงจาก CPAN

ฉันใช้ perl ของ ActiveState มาระยะหนึ่งแล้ว แต่ฉันมีความผิดปกติมากมายจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งแม้ว่าจะมีการกำหนดค่า (ดูเหมือน) เหมือนกันก็ตาม บรรจุภัณฑ์โมดูล PPM ของพวกเขาก็มีรสชาติที่ไม่ดีเช่นกัน ทำให้การจัดการแพ็คเกจเป็นเรื่องง่าย แต่คุณต้องพึ่งพาพวกเขาในการอัปเดต PPM หลังจากอัปเดต CPAN นอกจากนี้ PPM ไม่ได้เป็นเนื้อหาทั้งหมดของ CPAN โดยวิธีใด ๆ ครั้งสุดท้ายที่ฉันใช้ ActivePerl ฉันมีปัญหาในการค้นหาโมดูลทั้งหมดที่ฉันต้องการและโมดูลที่มีอยู่มักจะเป็นเวอร์ชันเก่า


2
ฉันอยากรู้ว่าคะแนนโหวตลดลงขนาดไหน
gWaldo

3

ActiveState Perl ได้รับการพิจารณาว่าเป็น Windows Perl โดยพฤตินัยมาระยะหนึ่งแล้ว แม้ว่าจะมีข้อบกพร่องมากมายและพวกเราหลายคนใช้อย่างอื่น แต่ก็ยังคงเป็นที่นิยมอย่างมาก หากคุณกำลังสร้างรหัส Perl เพื่อเรียกใช้งานบนเครื่อง Windows (นอกเหนือจากของคุณเอง) ฉันจะพิจารณาเขียนโดยคำนึงถึงค่าเริ่มต้น (หรือเป็นค่าเริ่มต้นเท่าที่จะทำได้) ตามที่การติดตั้ง Perl ดำเนินการ อย่างอื่นและคุณกำลังแนะนำอุปสรรคในการเข้าใช้งานสำหรับผู้อื่นที่พยายามใช้แอปของคุณในภายหลัง


AFAIK, PAR pp ทำงานได้ดีกับ Strawberry ซึ่งเป็นข้อได้เปรียบที่ดีในแง่ของการเผยแพร่แอปของคุณเองเนื่องจาก IIUC คุณจะต้องมีใบอนุญาต OEM เพื่อให้สามารถเผยแพร่แอปที่รวบรวม pp ได้หากคุณใช้ DLL
Sinan Ünür

3
@Sinan คำชี้แจงของคุณเกี่ยวกับการออกใบอนุญาต ActivePerl และ PAR ไม่ถูกต้อง ดูข้อ 4 ของใบอนุญาต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 อืม ... ฉันสาบานได้ว่าเวอร์ชั่นก่อนหน้านี้ไม่อนุญาต แต่ฉันไม่แน่ใจว่าฉันจำได้ถูกต้องหรือเปล่า ขอบคุณสำหรับการแก้ไข
Sinan Ünür

2

ฉันมีปัญหาสำคัญกับสตรอเบอรี่และรู้สึกว่าไม่มีการสนับสนุน คนดีที่ PerlMonks ไม่สามารถช่วยฉันได้และฉันก็ยอมแพ้ หากหน้านี้ทำให้คุณขาดความมั่นใจมีคำตอบของคุณ


1

รหัสที่ฉันเขียนลงใน บริษัท ที่ติดอันดับ Fortune 500 ดังนั้นความรู้สึก "องค์กร" จึงเป็นประโยชน์ ฉันเคยใช้ ActivePerl มาแล้วและใช้งานได้ดีทั้งสำหรับการใช้เครื่องมือภายในและเพื่อแจกจ่ายให้กับลูกค้ารายใหญ่เหล่านั้น


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.