Corso di Raku / Oggetti, input/output ed eccezioni / Input e output / Flussi standard / Exercises / Output ed errori
Soluzione: Output ed errori
Ecco una possibile soluzione del compito.
Codice
my @data = 3, 5, 7;
my $sum = 0;
for @data -> $n {
$sum += $n;
$*ERR.say("running total: $sum");
}
$*OUT.say($sum);🦋 Trova il programma nel file output-and-error.raku.
Output
Sullo schermo compaiono entrambi i flussi — prima i totali parziali, poi il risultato finale:
running total: 3
running total: 8
running total: 15
15Se l’errore standard viene scartato, resta solo l’output vero:
$ raku output-and-error.raku 2>/dev/null
15Commenti
$*OUTe$*ERRsono gli handle dell’output standard e dell’errore standard. Ciascuno ha il proprio metodosay.Ogni giro del ciclo aggiunge il numero successivo e scrive il totale corrente su
$*ERR; solo la somma finale va su$*OUT. Sullo schermo l’avanzamento e il risultato si somigliano, ma viaggiano su flussi diversi — ed è per questo che redirigere altrove l’errore standard con2>/dev/nulllascia solo il15finale.