Много программистов открывают файл просто используя open(FILE,"$filename") || .... Мы уже видели опасность такого кода. Чтобы уменшить риск, указывайте режим открытия:
open(FILE,"<$filename") || ... только для чтения;
open(FILE,">$filename") || ... только для записи
Не открывайте свои файлы, не указывая режим.
Перед доступом к файлу рекомендуется проверить его существование. Это не защитит от проблем, связанных с условием перехвата, описаных в предыдущей статье, однако обойдет ловушки вроде команд с аргументами.
if ( -e $filename ) { ... }
Начиная с Perl 5.6 появился новый синтаксис для open() : open(ФАЙЛОВЫЙ ДЕСКРИПТОР,РЕЖИМ,СПИСОК). С режимом '<' файл открывается для чтения, с '>' - файл урезается или создается по необходимости, а затем открывается для записи. Появляются новые интересные режимы для общения с другими процессами. Если режим указан как '|-' или '-|', аргумент СПИСОК интерпретируется как команда, которая расположена после или до символа канала соответственно.
До Perl 5.6 и трехаргументной функции open() некоторые люди использовали команду sysopen().