Score:0

Raku และ Perl 5 สามารถทำงานบน Ubuntu เดียวกันด้วยการสลับ

ธง im

ฉันใช้เดสก์ท็อปกับ Ubuntu 20.04 ฉันติดตั้ง Perl 5 แล้ว ฉันจะติดตั้ง Raku ก่อนที่ฉันจะติดตั้ง Raku ฉันต้องการตรวจสอบให้แน่ใจว่าฉันสามารถสลับไปมาระหว่างกันได้ เมื่อเรียกใช้สคริปต์ Perl

เป็นไปได้หรือไม่ที่จะมีทั้ง Raku และ Perl 5 ติดตั้งและพร้อมใช้งานบน Ubuntu ด้วยสคริปต์สวิตช์ที่จะทำให้ Perl เริ่มต้นอย่างใดอย่างหนึ่งเมื่อเรียกใช้สคริปต์

muru avatar
us flag
Raku ใช้ชื่อคำสั่งเดียวกันกับ Perl หรือไม่?
NW7US avatar
im flag
ฉันรู้ว่ามันเป็นคำสั่งบรรทัดคำสั่งที่แตกต่างกันสองคำสั่ง ฉันกำลังเล่นกับความคิดที่จะใช้นามแฝงของเชลล์เพื่อให้ฉันสามารถสลับไปมาระหว่างทั้งสองได้ เมื่อเรียกใช้กระบวนการ/สคริปต์เดียวกัน
Score:1
ธง jp

ใช่ พวกเขาเป็นสองภาษาที่แตกต่างกันอย่างสิ้นเชิง Perl5 คุณจะเรียกใช้ในสคริปต์และบรรทัดคำสั่งเป็น perl และ Raku เป็น raku ไม่มีสวิตช์ดังกล่าว เนื่องจากไม่รองรับภาษา (แม้ว่า raku สามารถเรียกใช้รหัส Perl ได้ภายใต้เงื่อนไขบางประการ แต่ Perl5 ไม่สามารถเรียกใช้รหัส Raku ได้)

NW7US avatar
im flag
เมื่อรู้ว่า Raku สามารถรันโค้ด Perl5 ได้ (ภายในข้อจำกัด) ฉันจึงคิดหาวิธีใช้ Perl5 หรือ Raku เพื่อรันสคริปต์/กระบวนการ สิ่งที่ฉันคิดว่าเป็นวิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคือการสร้างนามแฝงของเชลล์ที่สามารถรีเซ็ตเป็นบรรทัดคำสั่ง Perl5 หรือ Raku และเพียงแค่อัปเดตนามแฝงตามความต้องการ หากสคริปต์ได้รับการออกแบบให้สามารถรันโดย Perl5 หรือ Raku ได้ ฉันสามารถเลือกอันใดอันหนึ่งได้ หากมีความแตกต่างที่ไม่ซ้ำกัน ฉันคิดว่าฉันสามารถตั้งค่าตัวแปรสภาพแวดล้อมบางตัวให้คำนึงถึงความแตกต่างเหล่านั้นได้ ฉันยังไม่เสร็จสิ้นกระบวนการคิดของฉันเกี่ยวกับเรื่องนี้
Joaquín Ferrero avatar
jp flag
ไม่ คุณยังไม่เข้าใจ เป็นสองภาษาที่แตกต่างกันมาก แม้ว่าจะมีรายละเอียดทั่วไปอยู่บ้าง แต่สคริปต์ที่เขียนด้วย Raku จะไม่สามารถทำงานใน Perl5 ได้ เหมือนกับการบอกว่าคุณต้องการเขียนสคริปต์ที่สามารถทำงานใน PHP และ Python ได้พร้อมกัน แต่คุณทำไม่ได้ อันที่จริง มันไม่สมเหตุสมผลเลย เว้นแต่คุณต้องการแสดงให้เห็นถึงความฉลาดทางปัญญา หากคุณเขียนสคริปต์ใน Raku คุณไม่จำเป็นต้องเรียกใช้ใน Perl5 เพียงใส่ #!/usr/local/bin/raku (หรือที่ใดก็ตามที่ตัวแปล Rakudo อยู่) ในบรรทัดแรก เรียกมันว่า script.raku และลืม Perl5 ไปได้เลย
Joaquín Ferrero avatar
jp flag
โปรดดูตัวอย่างสคริปต์ Perl และ Raku สำหรับงานเดียวกันนี้: https://dzone.com/articles/perl-amp-raku-best-frenemies
NW7US avatar
im flag
ขอบคุณสำหรับการชี้แจง ฉันไม่ชัดเจนในสถานการณ์ที่ทำให้ฉันใคร่ครวญความคิดนี้ ฉันรู้ว่า Perl5 ไม่สามารถรันโค้ดที่กำหนดเป้าหมายไปยัง Raku ฉันนึกถึงสถานการณ์นี้: ฉันกำลังพิจารณาที่จะอัปเกรดระบบซอฟต์แวร์เมื่อเวลาผ่านไปเพื่อให้เป็น Raku ที่สมบูรณ์ สคริปต์ที่ฉันเขียนมาหลายทศวรรษคือ Perl5 ฉันต้องการเรียกใช้สคริปต์ Perl5 โดยมี Raku เป็นค่าเริ่มต้นสำหรับสคริปต์ Perl5 ใดๆ ในระบบของฉัน ฉันเข้าใจว่าอาจมีการนวดที่จำเป็นสำหรับไฟล์โค้ดเหล่านั้นเพื่อแก้ไขปัญหาเช่นไลบรารี แต่นั่นจะเป็นงานเริ่มต้นที่น้อยกว่าการเขียนไฟล์โค้ดทุกไฟล์ใหม่ให้เป็น Raku 100%
Joaquín Ferrero avatar
jp flag
หากคุณจำได้ ใน Perl5 เรามักจะใช้ `system()` และ `exec()` เพื่อรันคำสั่งภายนอก คุณสามารถใช้เทคนิคเดียวกันจาก Raku เพื่อเรียกใช้สคริปต์ Perl ในขณะที่เขียนสคริปต์เหล่านั้นใหม่ไปยัง Raku จากหน้า [คู่มือ Perl to Raku](https://docs.raku.org/language/5to6-perlfunc) คุณสามารถใช้รูทีน `run` (รันคำสั่งภายนอกโดยไม่ใช้เชลล์) หรือ `shell` (รัน คำสั่งภายนอกโดยใช้เชลล์) ตัวอย่าง: `เรียกใช้ "perl", "script1.pl";`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา