Corso di Raku / Oggetti, input/output ed eccezioni / Input e output / Eseguire programmi esterni 🆕 / Exercises / Catturate l’output

Soluzione: Catturate l’output

Ecco una possibile soluzione del compito.

Codice

my $proc = run 'echo', 'hello world raku', :out;
my $output = $proc.out.slurp(:close).trim;
say $output.words.elems;

🦋 Trova il programma nel file capture-output.raku.

Output

3

Commenti

  1. :out redirige l’output del programma dentro il Proc invece che sullo schermo, e .out.slurp(:close) lo rilegge tutto; .trim toglie il ritorno a capo finale che echo aggiunge.

  2. Una volta che l’output è una stringa ordinaria nel nostro programma, lo trattiamo come qualunque altro dato: .words.elems lo divide sugli spazi e conta i pezzi, dando 3. È questo il senso della cattura: il programma esterno diventa un mattoncino il cui risultato elaboriamo ulteriormente.

Catturate l’output   |   Controllate il codice di uscita