Raku kurss / Objekti, ievade/izvade un izņēmumi / Ievade un izvade / Standarta plūsmas / Exercises / Izvade un kļūdas
Risinājums: Izvade un kļūdas
Šeit ir iespējams risinājums uzdevumam.
Kods
my @data = 3, 5, 7;
my $sum = 0;
for @data -> $n {
$sum += $n;
$*ERR.say("running total: $sum");
}
$*OUT.say($sum);🦋 Atrodiet programmu failā output-and-error.raku.
Izvade
Ekrānā parādās abas plūsmas — vispirms uzkrātās summas, tad galīgais rezultāts:
running total: 3
running total: 8
running total: 15
15Ja standarta kļūdu plūsma tiek izmesta, paliek tikai īstā izvade:
$ raku output-and-error.raku 2>/dev/null
15Komentāri
$*OUTun$*ERRir standarta izvades un standarta kļūdu plūsmas turi. Katram ir sava metodesay.Katrā cikla piegājienā tiek pieskaitīts nākamais skaitlis un uzkrātā summa ierakstīta
$*ERR; uz$*OUTaiziet tikai galīgā summa. Ekrānā progress un rezultāts izskatās vienādi, taču tie ceļo pa dažādām plūsmām — un tieši tāpēc, novirzot standarta kļūdas prom ar2>/dev/null, paliek tikai galīgais15.