выше пример как это сделать на голом перле, но я люблю использовать https://metacpan.org/pod/Path::Tiny — это библиотеку нужно ставить дополнительно, но она очень, на мой взгляд, приятная
Обычно, если не нужно создавать мега огромные файлы, то я все собираю в одну переменную, а потом содержимое этой переменной сохраняю в файл.
так, а мега-огромные – эт сколько? и вообще, насколько безопасно писать в файл и в конце делать close. поясню – у меня пул из 10к строк (доменов), я по каждому домену делаю whois и пишу в файл.