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'événement 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 :
$_TD->{event}Le nom de l'événement pour lequel le trigger a été déclenché.
$_TD->{tag}La balise de la commande pour laquelle le trigger a été déclenché.
Le code de retour de la fonction 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 FUNCTION perlsnitch();