можете ли вы использовать библиотеки в PL / Perl
мне просто любопытно, если при написании функций PL/Perl, если я могу иметь use My::Lib;
оператор или включить pragma и функции (например,'use strict; use feature 'switch';
).
2 ответов
не при использовании PL / Perl. Он ограничивает использование require и use, поэтому вы не можете импортировать модули. Однако вы можете установить PL / Perlu (для неограниченного режима), который позволяет загружать модули.
plperlu можно рассматривать как угрозу безопасности, однако, поскольку он также позволяет командам файловой системы, таким как open.
в целях безопасности вы не можете запустить оператор use/require в функции под plperl, но вы можете под plperlu.
Если вы хотите использовать модули безопасным способом, вы можете добавить plperl.on_init = 'require "myperlinit.pl";'
до postgresql.conf
file, затем создайте скрипт perl с именем myperlinit.pl в каталоге данных, который содержит ваши uses. Это потребует перезагрузки сервера базы данных, и эти модули доступны для всех ваших функций.
Если вы хотите строгий режим включен, вы можете plperl.use_strict = true
добавим его.
Примечание: этот скрипт выполняется один раз на соединение при вызове первой функции perl, а не при создании соединения.