-- test warnings and errors from plperl create or replace function perl_elog(text) returns void language plperl as $$ my $msg = shift; elog(NOTICE,$msg); $$; select perl_elog('explicit elog'); NOTICE: explicit elog perl_elog ----------- (1 row) create or replace function perl_warn(text) returns void language plperl as $$ my $msg = shift; warn($msg); $$; select perl_warn('implicit elog via warn'); NOTICE: implicit elog via warn at line 4. perl_warn ----------- (1 row) -- test strict mode on/off SET plperl.use_strict = true; create or replace function uses_global() returns text language plperl as $$ $global = 1; $other_global = 2; return 'uses_global worked'; $$; ERROR: creation of Perl function failed: Global symbol "$global" requires explicit package name at line 3. Global symbol "$other_global" requires explicit package name at line 4. select uses_global(); ERROR: function uses_global() does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts. SET plperl.use_strict = false; create or replace function uses_global() returns text language plperl as $$ $global = 1; $other_global=2; return 'uses_global worked'; $$; select uses_global(); uses_global -------------------- uses_global worked (1 row)