При вызове функции open с дескриптором файла, который уже открыт, этот дескриптор будет автоматически закрыт, а затем снова открыт и связан с именем указанного файла. Кроме всего прочего, такой вызов может применяться для переоткрытия любого из трех стандартных дескрипторов файлов и увязки его с указанным файлом, что позволяет изменить применяемое по умолчанию обозначение источника ими назначения оператора и функций print. Как и при использовании функции print, многие программисты опускают круглые скобки при вызове функций open и close.
С версией функции open с двумя параметрами связано много “магических” свойств (некоторые считают, что даже слишком много). Полный перечень таких свойств перечислен в документации POD perlfunc и perlopentut. Однако одно из них необходимо отметить, поскольку это часто применяется. Можно дублировать дескриптор файла, указав его в качестве второго параметра функции open и введя вначале последовательность символов >& или <&. Символы >& позволяют дублировать дескрипторы файлов, используемые для записи, а символы <& - дескрипторы файлов, используемые для чтения.
Для удобства чтения можно поместить любое число пробельных символов между символами режима и именем файла; они будут игнорироваться. Если символ режима не указан, файл открывается для чтения.
В языке Perl предусмотрен также альтернативный API-интерфейс, в котором полностью исключен “магический” и запутанный синтаксис функции open, именно его зачастую используют в написании приложений для Asterisk, представляющего собой офисную IP АТС . Функции sysopen позволяют открывать файлы с использованием такого же синтаксиса, как и в библиотечной функции open языка С.