--- Carl Franks <[EMAIL PROTECTED]> wrote: > I have a seperate config file in which I define all of my variables. > (because I'm making a program using several scripts with many common vars) > > I was under the impression that by initiating the variable (even in a > seperate file) 'use strict' would be happy. > However, when I run the script, I get lots of warnings about undeclared > variables. > Do I have to declare the variables before using them, even though they are > already defined, or is there something else I should know? > (code below) > > Thanks, > Carl
Carl, Usually (but not always), you want to predeclare these variables with the "my" keyword. Also, "param" is a CGI method, not a DBI method. Your script below doesn't declare $var1, even if you do have it in a file you require. One simple way of accomplishing what you want is to put your configuration data in a file with a hash structure: { var1 => "This is the first var", var2 => "This is the second var" } Then, in your actual program, you 'do' the file: #!/usr/bin/perl -wT use strict; use CGI; my $q = new CGI; my $config = do ('config'); if ( $config->{'var1'} == $q->param('user') ){ &whatever } The 'config' file has a hashref and using 'do' in this manner will evaluate the contents of the file and assign them to the scalar $config. See 'perldoc -f do' for more information. I think that method is a bit cleaner because you're not using global variables (which are usually a bad idea). However, if you want to keep using your method, you need to simply declare those variables in the required file with "use vars": #!/usr/bin/perl -wT use strict; use vars qw/ $var1 $var2 /; require "config"; use CGI; my $q = new CGI; # <- note the use of 'my' if ( $var1 == $q->param('user') ){ &whatever } For a better understanding of "use vars", read http://www.perlmonks.org/index.pl?node_id=105446. This node explains the difference between "our" and "my", but I also cover "use vars" and it should give you a good idea of what is going on. Cheers, Curtis "Ovid" Poe ===== Senior Programmer Onsite! Technology (http://www.onsitetech.com/) "Ovid" on http://www.perlmonks.org/ __________________________________________________ Do You Yahoo!? Check out Yahoo! Shopping and Yahoo! Auctions for all of your unique holiday gifts! Buy at http://shopping.yahoo.com or bid at http://auctions.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]