Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Enigo kaj eligo / Normaj fluoj / Exercises / Eligo kaj eraroj
Solvo: Eligo kaj eraroj
Jen ebla solvo de la tasko.
Kodo
my @data = 3, 5, 7;
my $sum = 0;
for @data -> $n {
$sum += $n;
$*ERR.say("running total: $sum");
}
$*OUT.say($sum);🦋 Vi povas trovi la fontkodon en la dosiero output-and-error.raku.
Eligo
Sur la ekrano ambaŭ fluoj aperas — la kurantaj sumoj, poste la fina rezulto:
running total: 3
running total: 8
running total: 15
15Se norma erarfluo estas forĵetita, nur la vera eligo restas:
$ raku output-and-error.raku 2>/dev/null
15Komentoj
$*OUTkaj$*ERRestas la teniloj por norma eligo kaj norma erarfluo. Ĉiu havas sian propran metodonsay.Ĉiu paso de la buklo aldonas la sekvan nombron kaj skribas la kurantan sumon al
$*ERR; nur la fina sumo iras al$*OUT. Sur la ekrano la progreso kaj la rezulto aspektas similaj, sed ili vojaĝas tra malsamaj fluoj — kial redirekti norman erarfluon per2>/dev/nulllasas nur la finan15.