Преобразованный из сценария командной строки в реальную программу, ваш код выглядит следующим образом:
use lib qw( .cpan/build/DBI-1.642-0/ );
DBI->connect("dbi:SQLite:dbname=foo.sqlite","","");
И сообщение об ошибке вы получите:
Не удается найти метод объекта «connect» через пакет «DBI» (возможно, вы забыли загрузить «DBI»?) В строке -e 1.
Эта ошибка довольно очевидна.
(возможно, вы забыли загрузить «DBI»?)
Проблема здесь в том, что вам не хватает строки кода, которая фактически загружает модуль DBI. Вы должны добавить это:
use DBI;
Ваша строка use lib qw( .cpan/build/DBI-1.642-0/ )
очень странная. Вы просите Perl загрузить модуль из временного каталога сборки, который использовался во время установки. Это не та версия, которую вы хотите использовать вообще. Когда cpan
завершит свою работу, у вас будет установлена версия DBI в ваших стандартных каталогах библиотеки Perl, к которой вы сможете получить доступ без необходимости какого-либо use lib
кода.
Я также добавлю, что если вы используете системную версию Perl, нет необходимости использовать cpan
для установки наиболее популярных модулей. Вы можете использовать репозиторий готовых пакетов вашего дистрибутива. Например, apt get install libdbi-perl
(в Debian и аналогичных) или dnf install perl-DBI
(в Red Hat).
В своем ответе вы молча добавили пропущенный оператор use DBI
и утверждаете, что установка DBD :: SQLite решила вашу проблему. Возможно, это решило другую проблему, которая у вас была, но это не решило проблему в вашем первоначальном вопросе.