Курс языка программирования 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Комментарии
:outперенаправляет вывод программы вProc, а не на экран, а.out.slurp(:close)читает его целиком обратно;.trimубирает завершающий перевод строки, который добавляетecho.Как только вывод стал обычной строкой в нашей программе, мы обращаемся с ним как с любыми другими данными:
.words.elemsразбивает его по пробельным символам и считает части, давая3. В этом и смысл захвата — внешняя программа становится строительным блоком, результат которого мы обрабатываем дальше.