I'm trying to launch this script:
#!/usr/bin/perl
use DBI;
my $dbh = DBI->connect( 'dbi:Oracle:host=lonlin2;sid=TIMFX1AD;port=1524','xbsesdbo','xbsesdbo123' ) || die ( $DBI::errstr . "\n" );
my $query= "SELECT * FROM product_elements WHERE element_id = 1001";
my $queryHandler= $dbh->prepare($query);
my $result= $queryHandler->execute();
open(fileHandler,"> note.txt");
print fileHandler "Risultato query: $result\n";
my $e= $dbh->disconnect();
close(fileHandler);
When I launch this script I receive this error:
Can't locate DBI.pm in @INC (@INC contains: /opt/perl_32/lib/5.8.3/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/5.8.3 /opt/perl_32/lib/site_perl/5.8.3/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/site_perl/5.8.3 /opt/perl_32/lib/site_perl /opt/perl_32/lib/vendor_perl/5.8.3/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/vendor_perl/5.8.3 /opt/perl_32/lib/vendor_perl .) at ./prova.pl line 3.
I've got all installed!! DBI.pm is installed !!
DBI isn't in your
@INC
path, which tells perl where to look for custom modules. This is probably because you've installed them using thecpan
tool as a non-root user, which won't have write access to the default include paths.You will need to locate
DBI.pm
and other packages, and move them into your@INC
path.Alternatively, find the packages you've installed and add the install path into your library path, for one time use:
And for a more permanent solution, add this to
~/.bashrc
:If you have root, type in console (Debian/Ubuntu):
If you don't have active perl (and hence don't have ppm), you can also get DBI like this:
You may need to install drivers for Postgres like this: