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 output

Diagnostische 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 error

Deze 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.

  1. Uitvoer en fouten
  2. Een waarschuwing met note
  3. Afdrukken zonder regeleinde

Cursusnavigatie

Invoer en uitvoer   |   Uitvoer en fouten