代码之家  ›  专栏  ›  技术社区  ›  xenoterracide

您可以使用pl/perl中的库吗

  •  7
  • xenoterracide  · 技术社区  · 15 年前

    我只是好奇在编写pl/perl函数时,如果我可以 use My::Lib; 语句,或启用pragma的和功能(例如 use strict; use feature 'switch'; )

    2 回复  |  直到 9 年前
        1
  •  6
  •   CanSpice    15 年前

    使用pl/perl时不使用。它限制了Require和Use的使用,因此无法导入模块。但是,您可以安装pl/perlu(对于无限制模式),它允许您加载模块。

    然而,plperlu可能被认为是一种安全风险,因为它还允许文件系统命令,如open。

        2
  •  0
  •   Rahly    9 年前

    为了安全起见,不能在plperl下的函数中运行use/require语句,但可以在plperlu下运行。

    如果要以安全方式使用模块,可以添加 plperl.on_init = 'require "myperlinit.pl";' postgresql.conf 文件,然后在包含您的用途的数据目录中创建一个名为myperlinit.pl的Perl脚本。这将需要重新启动数据库服务器,这些模块可用于所有功能。

    如果要打开严格模式,可以 plperl.use_strict = true 将添加它。

    注意:这个脚本在调用第一个Perl函数时每个连接执行一次,而不是在创建连接时执行。