Язык PL/Perl может использоваться для написания функций событийных триггеров. В функции событийного триггера ссылка на хеш $_TD содержит сведения
о текущем событии триггера. $_TD представляет собой глобальную переменную, которая получает отдельное локальное значение при каждом вызове триггерной функции. Поля $_TD ссылки на хеш:
$_TD->{event}Название события, для которого вызывается триггер.
$_TD->{tag}Тег команды, для которой вызывается триггер.
Возвращаемое значение триггерной функции игнорируется.
Ниже приведён пример функции триггера событий, иллюстрирующий некоторые из вышеуказанных положений:
CREATE OR REPLACE FUNCTION perlsnitch() RETURNS event_trigger AS $$
elog(NOTICE, "perlsnitch: " . $_TD->{event} . " " . $_TD->{tag} . " ");
$$ LANGUAGE plperl;
CREATE EVENT TRIGGER perl_a_snitch
ON ddl_command_start
EXECUTE FUNCTION perlsnitch();