Puncte:0

Pot Raku și Perl 5 să ruleze pe același Ubuntu cu comutare

drapel im

Folosesc un desktop cu Ubuntu 20.04. Am Perl 5 instalat. Voi instala Raku. Înainte de a instala Raku, vreau să mă asigur că pot comuta între ele, când rulez un script Perl.

Este posibil să aveți Raku și Perl 5 atât instalate, cât și disponibile pe Ubuntu, cu un script de comutare care va face ca unul sau altul să fie Perl implicit atunci când rulați un script?

muru avatar
drapel us
Raku folosește chiar același nume de comandă ca și Perl?
NW7US avatar
drapel im
Știu că sunt două comenzi diferite din linia de comandă. Mă jucam cu ideea de a folosi un alias shell astfel încât să pot comuta între cele două, când rulez același proces/script.
Puncte:1
drapel jp

Da, sunt două limbi complet diferite. Perl5 îl veți rula în scripturi și linie de comandă ca perl, iar Raku ca raku. Nu există un astfel de comutator, deoarece limbile nu sunt acceptate (deși raku poate rula cod Perl în anumite condiții, Perl5 nu poate rula cod Raku).

NW7US avatar
drapel im
Știind că Raku poate rula codul Perl5 (în limita constrângerilor), mă gândeam să am o modalitate de a folosi Perl5 sau Raku pentru a rula un script/proces. Ceea ce am ajuns să cred că este cea mai bună modalitate de a realiza acest lucru este de a crea un alias de shell care poate fi resetat fie pe linia de comandă Perl5, fie pe Raku și doar să actualizez aliasul în funcție de necesități. Dacă scriptul este conceput astfel încât să poată fi rulat fie de Perl5, fie de Raku, atunci pot alege oricare dintre ele. Dacă există diferențe unice, presupun că aș putea seta unele variabile de mediu pentru a ține seama de aceste diferențe. Încă nu mi-am încheiat procesul de gândire la asta.
Joaquín Ferrero avatar
drapel jp
Nu, nu ai inteles. Sunt două limbi FOARTE diferite, deși au câteva detalii comune. Dar un script scris în Raku nu va putea rula în Perl5. Este ca și cum ai spune că vrei să scrii un script care poate rula în PHP și Python în același timp - nu poți. De fapt, nu are sens decât dacă vrei să faci o demonstrație de virtuozitate intelectuală. Dacă scrieți un script în Raku, nu trebuie să îl rulați în Perl5. Puneți doar #!/usr/local/bin/raku (sau oriunde este interpretul Rakudo) pe prima linie, numiți-o script.raku și uitați de Perl5.
Joaquín Ferrero avatar
drapel jp
Vă rugăm să vedeți acest exemplu de scripturi Perl și Raku pentru aceeași sarcină: https://dzone.com/articles/perl-amp-raku-best-frenemies
NW7US avatar
drapel im
Multumesc pentru clarificare. Nu am fost clar în scenariul care m-a făcut să mă gândesc la această idee. Știu că Perl5 nu poate rula cod care vizează Raku. Mă gândeam la acest scenariu: mă gândesc la actualizarea unui sistem software în timp pentru a fi complet Raku. Scripturile pe care le-am scris de-a lungul deceniilor sunt Perl5. Vreau să rulez scripturile Perl5 cu Raku ca implicit pentru orice script Perl5 din sistemul meu. Înțeleg că ar putea exista un masaj necesar al acelor fișiere de cod pentru a rezolva probleme precum bibliotecile. Dar, aceasta ar fi mult mai puțină muncă inițială decât rescrierea fiecărui fișier de cod pentru a fi 100% Raku.
Joaquín Ferrero avatar
drapel jp
Dacă vă amintiți, în Perl5 folosim de obicei `system()` și `exec()` pentru a executa o comandă externă. Puteți folosi aceeași tehnică de la Raku pentru a rula scripturi Perl în timp ce le rescrieți în Raku. Conform paginii [Ghidul Perl la Raku](https://docs.raku.org/language/5to6-perlfunc) puteți folosi rutina `run` (executarea unei comenzi externe fără a utiliza un shell) sau `shell` (executarea comandă externă folosind un shell). Exemplu: `run "perl", "script1.pl";`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.