Как и дескрипторы файлов, сигналы играют важную роль в сетевом программировании. Сигнал - это сообщение, отправляемое в программу операционной системой в качестве указания на то, что произошло нечто важное. Он может указывать на ошибку в самой программе, такую как попытка деления на нуль; на событие, которое требует немедленного вмешательства, такое как попытка со стороны пользователя прервать программу или на второстепенное информационное событие, такое как окончание подпроцесса, запущенного программой.
Сигналы может отправлять не только операционная система, процессы также могут посылать сигналы друг другу. Например, если пользователь нажимает комбинацию клавиш для отправки сигнала прерывания программе, работающей в настоящее время, этот сигнал отправляет не операционная система, а командный интерпретатор, который обрабатывает и интерпретирует комбинации клавиш. Процесс может также посылать сигналы самому себе.
В стандарте POSIX определено девятнадцать сигналов. Каждый из них имеет не большое целочисленное значение и символическое имя. Одни сигналы не приводят к каким-либо действиям, другие же вызывают немедленное завершение процесса. Однако есть и такие сигналы, которые не только завершают процесс, но и вызывают дамп ядра системы. Большинство сигналов может быть “перехвачено”. Это значит, что в программе можно установить обработчик этого сигнала и предпринять специальные действия при его получении. Однако, действие некоторых сигналов нельзя прервать таким образом.
Программисту нет необходимости изучать все сигналы, поскольку некоторые из них либо не возникают во время выполнения сценария Perl, либо их появление свидетельствует о наличии ошибки низкого уровня в самом интерпретаторе Perl, с которой невозможно справиться самостоятельно.