永久更改 Perl 脚本的 @INC

adr*_*lin 4 perl debian google-cloud-platform

我有一个在 Google Cloud Platform 上运行的 VM (Debian 9)。我需要添加一些文件夹@INC才能正常执行我的 Perl 脚本。我试图做这样的事情:

export PERLLIB=/path/to/my/dir
Run Code Online (Sandbox Code Playgroud)

或者

PERL5LIB=/path/to/my/dir
Run Code Online (Sandbox Code Playgroud)

但这仅适用于我当前的 SSH 会话。当我关闭浏览器窗口并再次连接时,我得到了旧@INC路径。

如何永久地做到这一点?或者也许还有其他一些方法可以做到这一点?

PS方法是这样的:

perl -I/path/to/my/dir program.pl
Run Code Online (Sandbox Code Playgroud)

或这个:

push @INC, '/path/to/my/dir/';
Run Code Online (Sandbox Code Playgroud)

不适合我,因为我想轻松调用脚本,并且不想修改它们的内容。

Dav*_*oss 6

显然,只设置像PERL5LIB和一样的环境变量PERLLIB只会影响您当前的 shell 会话。当您注销并重新登录时,这些设置将被清除。

因此,下一步是通过在您每次登录系统时自动设置这些设置来使这些设置更持久。您可以通过将更改添加到您的.bashrc.profile文件(取决于您使用的外壳程序)来实现。每次登录系统时都会执行这些文件,因此您添加的任何内容都可用于每个登录会话。

然而,还有一个额外的潜在并发症。你说这个系统在谷歌云平台上运行。因此,在我看来,您有一个经常重建或重置的虚拟机或基于容器的系统。在这种情况下,为了使您的更改真正永久有效,您需要将它们添加到用于构建 VM 或容器的任何机制中。也许那是 Puppet 清单、Chef 食谱或类似的东西。在不知道您的系统是如何构建的情况下,很难给出任何具体的建议。