Cursus Raku / Objecten, in- en uitvoer en excepties / Invoer en uitvoer / Externe programma’s uitvoeren 🆕 / Exercises / Vang de uitvoer op

Oplossing: Vang de uitvoer op

Hier is een mogelijke oplossing voor de taak.

Code

my $proc = run 'echo', 'hello world raku', :out;
my $output = $proc.out.slurp(:close).trim;
say $output.words.elems;

🦋 Je kunt de broncode vinden in het bestand capture-output.raku.

Uitvoer

3

Opmerkingen

  1. :out leidt de uitvoer van het programma de Proc in plaats van naar het scherm, en .out.slurp(:close) leest alles terug; .trim haalt de afsluitende newline weg die echo toevoegt.

  2. Zodra de uitvoer een gewone string in ons programma is, behandelen we haar als elke andere gegevenswaarde: .words.elems splitst haar op witruimte en telt de stukken, wat 3 oplevert. Daar draait opvangen om — het externe programma wordt een bouwsteen waarvan we het resultaat verder verwerken.

Cursusnavigatie

Vang de uitvoer op   |   Controleer de afsluitcode