Перехватывать сигналы можно путем добавления обработчика сигналов к глобальному хешу %SIG. В качестве ключа этого хеша должно быть указано имя сигнала, который должен быть перехвачен. Например, для получения или установки обработчика сигнала INT может использоваться значение $SIG{INT}. В качестве значения применяется ссылка на код: либо анонимная подпрограмма, либо ссылка на именованную подпрограмму. Например, вместо прекращения работы, при нажатии клавиши прерывания данный сценарий выводит короткое сообщение и увеличивает значение счетчика. Это происходит до тех пор, пока в сценарии не будет подсчитано три прерывания, после чего он, наконец, завершает свою работу. В таком примере выполнения программы, при каждом нажатии клавиш выводится некое сообщение.
При небольшом объеме кода обработчика сигнала в качестве него может примеряться анонимная подпрограмма. Кроме ссылок на код, хеш %SIG позволяет распознать два частных случая. Установка DEFAULT указывает, что должна быть восстановлена процедура обработки сигналов, предусмотренная по умолчанию. Например, установка значения $SIG{INT}, истинного DEFAULT, приводит к тому, что сигнал INT снова завершает работу сценария. С другой стороны, установка значения IGNORE приводит к тому, что сигнал полностью игнорируется.
Как было упомянуто выше, не стоит заниматься установкой обработчиков для сигналов KILL или STOP. Эти сигналы не могут быть ни перехвачены, ни проигнорированы, поэтому всегда выполняется действие предусмотренное для них по умолчанию.