我试图在程序一开始就在 Perl 中设置一些环境变量,但我一直收到错误消息,除非我在调用我的 Perl 脚本的 Bash 脚本中设置它们。
#!/usr/bin/perl -w
$ENV{'ORACLE_HOME'}='path';
$ENV{'LD_LIBRARY_PATH'}='path';
这不起作用,但我的 shell 脚本可以:
#!/bin/bash
export ORACLE_HOME=path
export LD_LIBRARY_PATH=path
./perlscript.pl
我设置这些路径是为了让我的 DBI 模块工作。理想情况下,我想在 Perl 脚本中设置路径,而不是使用 Bash 脚本。
错误:
Install_driver (Oracle) 失败:无法为模块 DBD 加载 /some/path/:Oracle:libclntsh.so.11.1:无法打开共享对象文件:/some/path/DynaLoader.pm 第 230 行没有此类文件或目录
代码
use DBI;
my $dbh = DBI->connect("DBI:Oracle:host=something;port=something;sid=something");
my $sth = $dbh->perepare($query);
$sth->execute();
$sth->finish();