В вашем примере, так как он находится в конце вашего скрипта и в файле, открытом для чтения, он не нужен.
Я пытаюсь подумать, нужно ли это при чтении канала. Обычно вы закрываете после условия EOF, поэтому я думаю, что в этом нет необходимости.
Однако, если вы пишете, в близкое время могут быть обнаружены различные ошибки. Самый простой пример - полный диск. Об этом не может быть сообщено до закрытия дескриптора файла из-за буферизации.
Вы также можете use autodie
(рекомендуется выше Fatal, я думаю).