Поскольку связь по Internet может быть нарушена по многий причинам, в сетевых приложениях часто возникают ошибки ввода-вывода.
Как правило, любая из функций Perl, применяемая для выполнения операций ввода-вывода, после неудачного завершения возвращает ложное значение undef. Более конкретную информацию можно получить путем исследования специальной глобальной переменной $!. Переменная $! имеет любопытный двойственный характер. Если эта переменная рассматривается как строка, она возвращает предназначенное для восприятия человеком сообщение об ошибке типа Permission denied. Однако если она рассматривается как число, возвращает числовую константу, соответствующую данной ошибке, которая определена операционной системой (например, EACCES). Обычно лучше всего для определения конкретных ошибок использовать числовые константы, поскольку они являются стандартными для всех операционных систем.
Для получения значений конкретных констант с сообщениями об ошибках можно импортировать их из модуля Errno. В операторе use можно импортировать отдельные константы, указывая их по имени, или сразу все константы. Для вызова отдельных констант перечислите их в операторе use(). Для преобразования текстовой строки в список слов применяется оператор qw(). В результате в программу будут введены константы ошибок, которые определены стандартом POSIX — межплатформенным API, с которым в основном совместимы UNIX, Windows NT/2000 и многие другие операционные системы.