Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Ввод и вывод / Файловые дескрипторы / Exercises / Запись через дескриптор

Решение: Запись через дескриптор

Вот один из возможных вариантов решения задачи.

Код

my $fh = open 'out.txt', :w;
$fh.say($_) for 1..3;
$fh.close;

print slurp 'out.txt';

🦋 Исходный код можно найти в файле write-with-a-handle.raku.

Вывод

1
2
3

Комментарии

  1. open с флагом :w даёт дескриптор для записи. Дескриптор остаётся открытым на протяжении всего цикла, поэтому каждый $fh.say добавляет очередную строку — в этом и преимущество дескриптора перед spurt, который открывал бы файл заново каждый раз.

  2. close сбрасывает данные на диск, поэтому следующий за ним slurp считывает все три строки.

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

Запись через дескриптор   |   Передайте дескриптор в функцию