Hi,

I have now desperately tried to use the 'use' keyword within my plperl
scripts without success.

Does plperl not load libraries dynamically?

I am trying to import a .pm module from plperl and I get the following error
message:
	creation of function failed : require trapped by operation mask at (eval
28) line 2.

What I want to be able to do is to access my own defined perl libraries from
plperl.

I have looked at the plperl.c file and I noticed that the dynamic loader is
not initialised.

I would be most grateful for any help. Also, is there any documentation
online for plperl?

Regards,
Ragnar



Sun, 21 May 2000 15:58:18 +0100
"Ragnar Hakonarson" <rhakonarson@conquestnetwork.com>
plperl and the dynamic loader
"Ragnar Hakonarson" <rhakonarson@conquestnetwork.com> writes:
> Does plperl not load libraries dynamically?

> I am trying to import a .pm module from plperl and I get the following error
> message:
> 	creation of function failed : require trapped by operation mask at (eval 28) line 2.

Makes sense to me.  plperl runs in a "safe" Perl interpreter, and if you
could load arbitrary perl code then the safety would be bypassed.

The reason for this restriction is that whatever the Perl code does will
be done with the permissions of the Postgres user (since it's running in
a Postgres-owned backend).  It'd be a huge security hole if users could
invoke arbitrary Perl code in that environment.  So, we only permit
"safe" operations.

If you like living dangerously you could weaken the protection to suit
your taste --- read about the Safe and Opcode perl modules, and then
twiddle the plperl source code to select whatever operator mask you
feel comfortable with.

			regards, tom lane

Sun, 21 May 2000 13:34:30 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: plperl and the dynamic loader 