Очистить среду выполнения оболочки для запуска системы Perl?
Мне нужно создать несколько Perl-программ в среде Solaris 9 SPARC под управлением Oracle EBS, одна из которых будет запускаться из cron. Учетная запись UNIX, которая будет работать на Perl, имеет все переменные среды, настроенные для запуска программ, ориентированных на Oracle, поэтому, когда я запускаю "/usr/bin/perl -V", я получаю следующую ошибку компиляции. К счастью, запуск Perl cron не зависит от настроек среды Oracle.
bash-2.05$ /usr/bin/perl -V
Perl lib version (5.00503) doesn't match executable version (5.008) at /u01/app/applmgr/pr/iAS/Apache/perl/lib/5.00503/sun4-solaris/Config.pm line 7.
Compilation failed in require.
BEGIN failed--compilation aborted.
Моей первой мыслью было использование блока BEGIN для уборки дома, чтобы я мог использовать системный Perl, а не версию, поставляемую Oracle EBS.
#!/usr/bin/perl
BEGIN {
delete $ENV{PERL5LIB};
delete @INC[0..$#INC];
push @INC, map { "/usr/local/lib/perl5/$_" } (
'5.8.0','5.8.0/sun4-solaris',
'site_perl','site_perl/5.8.0','site_perl/5.8.0/sun4-solaris'
);
}
print "Hello clean Perl environment! :)\n";
Мне не разрешено изменять локальный профиль учетной записи UNIX, так что это правильный способ справиться с этим сценарием?
1 ответ
-i
вариант env
Команда позволяет запускать программы в чистой среде. С тех пор env
страница руководства:
-i, --ignore-environment
start with an empty environment
Для вас пример Perl:
env -i perl -V