PL/Perl peut être utilisé pour écrire des fonctions trigger sur événement. Dans ce type de fonctions, la référence hachée $_TD contient des informations sur l'évenement du trigger. $_TD est une variable globale, qui obtient une valeur locale séparée à chaque invocation du trigger. Les champs disponibles via $_TD sont :
Le nom de l'événement pour lequel le trigger a été déclenché.
La balise de la commande pour laquelle le trigger a été déclenché.
Le code de retour de la procédure trigger est ignoré.
Voici un exemple de fonction trigger sur événement, illustrant certaines des informations ci-dessus :
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 PROCEDURE perlsnitch();