Điểm:0

Raku và Perl 5 có thể chạy trên cùng một Ubuntu khi chuyển đổi không

lá cờ im

Tôi đang sử dụng máy tính để bàn với Ubuntu 20.04. Tôi đã cài đặt Perl 5. Tôi sẽ cài đặt Raku. Trước khi cài đặt Raku, tôi muốn đảm bảo rằng tôi có thể chuyển đổi giữa chúng khi chạy tập lệnh Perl.

Có thể cài đặt và có sẵn Raku và Perl 5 trên Ubuntu, với tập lệnh chuyển đổi sẽ biến cái này hoặc cái kia thành Perl mặc định khi chạy tập lệnh không?

muru avatar
lá cờ us
Raku có sử dụng cùng tên lệnh với Perl không?
NW7US avatar
lá cờ im
Tôi biết rằng chúng là hai lệnh dòng lệnh khác nhau. Tôi đang chơi với ý tưởng sử dụng bí danh shell để tôi có thể chuyển đổi giữa hai bí danh khi chạy cùng một quy trình/tập lệnh.
Điểm:1
lá cờ jp

Vâng, chúng là hai ngôn ngữ hoàn toàn khác nhau. Perl5, bạn sẽ chạy nó trong tập lệnh và dòng lệnh dưới dạng perl và Raku dưới dạng raku. Không có chuyển đổi như vậy, vì các ngôn ngữ không được hỗ trợ (mặc dù raku có thể chạy mã Perl trong một số điều kiện nhất định, Perl5 không thể chạy mã Raku).

NW7US avatar
lá cờ im
Biết rằng Raku có thể chạy mã Perl5 (trong giới hạn), tôi đã nghĩ đến cách sử dụng Perl5 hoặc Raku để chạy tập lệnh/quy trình. Điều tôi nghĩ là cách tốt nhất để thực hiện điều này là tạo bí danh shell có thể được đặt lại thành dòng lệnh Perl5 hoặc Raku và chỉ cần cập nhật bí danh theo nhu cầu. Nếu tập lệnh được thiết kế sao cho có thể chạy bằng Perl5 hoặc Raku, thì tôi có thể chọn một trong hai. Nếu có những khác biệt duy nhất, tôi cho rằng tôi có thể đặt một số biến môi trường để giải thích cho những khác biệt đó. Tôi vẫn chưa hoàn thành quá trình suy nghĩ của mình về điều này.
Joaquín Ferrero avatar
lá cờ jp
Không, bạn đã không hiểu. Chúng là hai ngôn ngữ RẤT khác nhau, mặc dù chúng có một số chi tiết chung. Nhưng một tập lệnh được viết bằng Raku sẽ không thể chạy trong Perl5. Nó giống như nói rằng bạn muốn viết một tập lệnh có thể chạy bằng PHP và Python cùng một lúc - bạn không thể. Trên thực tế, nó không có ý nghĩa gì trừ khi bạn muốn thể hiện trình độ trí tuệ điêu luyện. Nếu bạn viết tập lệnh trong Raku, bạn không cần chạy tập lệnh đó trong Perl5. Chỉ cần đặt #!/usr/local/bin/raku (hoặc bất kỳ nơi nào có trình thông dịch Rakudo) trên dòng đầu tiên, gọi nó là script.raku và quên Perl5 đi.
Joaquín Ferrero avatar
lá cờ jp
Vui lòng xem ví dụ về tập lệnh Perl và Raku cho cùng một tác vụ: https://dzone.com/articles/perl-amp-raku-best-frenemies
NW7US avatar
lá cờ im
Cảm ơn đã làm rõ. Tôi không rõ ràng về kịch bản khiến tôi phải suy nghĩ về ý tưởng này. Tôi biết Perl5 không thể chạy mã nhắm mục tiêu Raku. Tôi đã nghĩ đến kịch bản này: Tôi đang cân nhắc việc nâng cấp một hệ thống phần mềm theo thời gian để trở thành Raku hoàn toàn. Các tập lệnh tôi đã viết trong nhiều thập kỷ là Perl5. Tôi muốn chạy tập lệnh Perl5 với Raku làm mặc định cho bất kỳ tập lệnh Perl5 nào trong hệ thống của mình. Tôi hiểu rằng có thể cần phải xoa bóp các tệp mã đó để khắc phục các sự cố như thư viện. Tuy nhiên, đó sẽ là công việc ban đầu ít hơn rất nhiều so với việc viết lại mọi tệp mã đơn thành 100% Raku.
Joaquín Ferrero avatar
lá cờ jp
Nếu bạn còn nhớ, trong Perl5 chúng ta thường sử dụng `system()` và `exec()` để thực thi lệnh bên ngoài. Bạn có thể sử dụng kỹ thuật tương tự từ Raku để chạy tập lệnh Perl trong khi viết lại chúng vào Raku. Theo trang [Hướng dẫn Perl to Raku](https://docs.raku.org/lingu/5to6-perlfunc), bạn có thể sử dụng quy trình `run` (thực thi lệnh bên ngoài mà không cần sử dụng shell) hoặc `shell` (thực thi lệnh bên ngoài bằng trình bao). Ví dụ: `chạy "perl", "script1.pl";`

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.