You're using an old syntax there. I recommend that you read perldoc perlmod in a modern perl. It will help you would quite a bit.
As for the warnings, those variables are probably used somewhere in your "cfg.pl" program. The warning occurs because you have required that module (which happens are run time) and when Perl parses your CFG variables, it doesn't see (yet) that they've been used elsewhere. Hence the warning. There are several ways to get around this. One of the easier to implement and understand ways: (switching the old single quote package name delimiter to double colons):
use strict;
use warnings;
require "cfg.pl";
require "db.pl";
my $db;
{
no warnings 'once';
$db = new DB($CFG::SERVER, $CFG::DB, $CFG::USER, $CFG::DBPASSWD)
};
(I assumed, possibly incorrectly, that the password was also from that file and you just typoed it.)
What I would recommend to deal with the is to convert your .pl files to proper modules and then use them. The syntax would then look something like:
use strict;
use warnings;
use Cfg;
use Db;
my $db = new DB($CFG::SERVER, $CFG::DB, $CFG::USER, $CFG::DBPASSWD);
There are a few other things to look at, but I think this is a good start.
Cheers,
Ovid
New address of my CGI Course. |