Я пытаюсь запустить скрипт на Perl, который в начале

use Env '$Foo1', '$Foo2';

Я получаю следующее сообщение:

Невозможно найти Env.pm в @INC (@INC содержит: /usr /local /lib64 /perl5 /usr /local /share /perl5 /usr /lib64 /perl5 /vendor_perl /usr /share /perl5 /vendor_perl /usr /lib64 /perl5 /usr /share /perl5.) в строке ../path/to/Foo3 8

Я попытался найти модуль Env.pm (find . -name Env.pm -print), но ничего не происходит, он просто возвращается в командную строку.

Я использую RHEL7 и Perl v5.16.3.

2 ответа2

3

Установите пакет perl-Env для получения Env.pm.

yum install perl-Env

Вы также можете использовать функцию whatprovides в yum, чтобы увидеть, какие пакеты предоставляют файлы,

yum whatprovides */Env.pm

perl-Env-1.04-2.el7.noarch : Perl module that imports environment variables as scalars or arrays Repo        : base Matched from: Filename    : /usr/share/perl5/vendor_perl/Env.pm
1

RPM-упаковка имеет установленный стандарт для определения того, какая упаковка содержит какой модуль Perl. Формат: perl(<NAME>) . Таким образом, в вашем случае вы можете запустить команду yum install 'perl(Env)' и убедиться, что она разрешается в пакете perl-Env. К сожалению, вы не можете просто зависеть от самого имени пакета, так как некоторые пакеты предоставляют несколько модулей, и вещи иногда перемещаются в основной пакет perl и из него. Приведенный выше формат - это самый простой способ последовательно установить нужный пакет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .