Cursus Raku / Objecten, in- en uitvoer en excepties / Invoer en uitvoer
Standaardstromen
Elk programma heeft drie standaardstromen die het met zijn
omgeving verbinden: standaarduitvoer, standaardfout en standaardinvoer.
Raku stelt ze beschikbaar via drie bijzondere variabelen:
$*OUT, $*ERR en $*IN.
Je hebt de hele tijd al naar de standaarduitvoer geschreven:
say en print sturen hun tekst naar
$*OUT.
say 'Hello'; # goes to standard outputDiagnostische meldingen en foutmeldingen worden apart gehouden, op de
standaardfout, zodat ze niet door de echte uitvoer van het programma
gemengd raken. De routine note schrijft daarheen:
note 'Something looks wrong'; # goes to standard errorDeze scheiding is nuttig omdat de twee stromen onafhankelijk omgeleid kunnen worden — je kunt bijvoorbeeld de uitvoer van een programma naar een bestand opslaan en toch de foutmeldingen op het scherm zien.
Je kunt ook rechtstreeks naar de stromen schrijven. Zowel
$*OUT als $*ERR is een handle met
eigen methoden say en print:
$*OUT.say('a normal line');
$*ERR.say('a diagnostic line');De derde stroom, $*IN, is de standaardinvoer. Je kwam
hem indirect tegen via prompt, dat er een regel uit leest.
We komen op invoer lezen terug wanneer we naar bestandshandles kijken, want
$*IN is net zo goed een handle als een geopend bestand.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Oefeningen
Deze sectie bevat 3 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.