Вы можете использовать библиотеки в PL / Perl - PullRequest
7 голосов
/ 20 августа 2010

Мне просто любопытно, если при написании функций PL / Perl я могу иметь оператор use My::Lib; или включить прагмы и функции (например, use strict; use feature 'switch';).

Ответы [ 2 ]

6 голосов
/ 20 августа 2010

Не при использовании PL / Perl.Он ограничивает использование require и use, поэтому вы не можете импортировать модули.Однако вы можете установить PL / Perlu (для неограниченного режима), который позволяет загружать модули. Тем не менее,

plperlu может рассматриваться как угроза безопасности, так как он также допускает команды файловой системы, такие как open.

0 голосов
/ 18 июня 2016

В целях безопасности вы не можете запустить оператор use / require в функции под plperl, но вы можете под plperlu.

Если вы хотите использовать модули безопасным способом, вы можете добавить plperl.on_init = 'require "myperlinit.pl";' кфайл postgresql.conf, затем создайте сценарий perl с именем myperlinit.pl в каталоге данных, который содержит данные об использовании.Это потребует перезагрузки сервера базы данных, и эти модули будут доступны для всех ваших функций.

Если вы хотите включить строгий режим, вы можете plperl.use_strict = true добавить его.

Примечание: этот скрипт выполняется один раз для каждого соединения при вызове первой функции perl, а не при создании соединения.

...