On Aug 2, awarsd said:
>#!/usr/bin/perl
>
>use CGI qw(:standard);
>use DBI;
>
>require "/path/to/config.pl";
> ##inside config.pl it has $dataDir
>##$dataDir = "/path/to/";
>use lib $dataDir."Module";
>use Test;
You named your module "Test"? That's why you're getting a false positive.
There's a standard module named Test; it's being use'd, instead of your
module.
The 'use lib ...' statement happens at COMPILE-time. The 'require ...'
statement happens at RUN-time. COMPILE-time is before RUN-time, so 'use
lib ...' happens first, and $datadir is EMPTY then, because it hasn't been
filled, because 'require ...' hasn't happened yet.
You must do two things:
1. rename your module, to something like MyStuff.pm
2. put the 'require ...' code inside a BEGIN block
BEGIN { require "/path/to/config.pl" }
use lib "$dataDir/Module";
use MyStuff;
>Should I declare variable i.e
>my $datDir inside the program or in the config.pl??
>Also should i declare in module $main::dataDir like
>my $main::dataDir; or I can just leave $main::dataDir??
If you declare any my() variables in config.pl, NO OTHER FILE can see
them. Therefore, do NOT make $dataDir a my() variable. Furthermore, a
my() variable CANNOT belong to a package, so you can't say my $main::var.
It just doesn't make sense.
Leave your variables as they are.
--
Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/
RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/
<stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.
[ I'm looking for programming work. If you like my work, let me know. ]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]