Курс по Raku / Обекти, вход-изход и изключения / Вход и изход / Стартиране на външни програми 🆕 / Exercises / Прихванете изхода

Решение: Прихванете изхода

Ето едно възможно решение на задачата.

Код

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

🦋 Намерете програмата във файла capture-output.raku.

Изход

3

Коментари

  1. :out пренасочва изхода на програмата в Proc вместо на екрана, а .out.slurp(:close) го прочита целия обратно; .trim премахва завършващия нов ред, който echo добавя.

  2. Щом изходът е обикновен низ в нашата програма, ние го третираме като всякакви други данни: .words.elems го разделя по празните места и преброява парчетата, давайки 3. Точно това е смисълът на улавянето — външната програма става градивен блок, чийто резултат обработваме нататък.

Навигация в курса

Прихванете изхода   |   Проверете кода на изход