Курс по 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. Точно това е смисълът на улавянето — външната програма става градивен блок, чийто резултат обработваме нататък.