Hi all, I have a cgi prog that complains about uninitialized values when I use the -w switch. To avoid those errors I have done stuff like this:
--------------------------------------------------------------- # Up near the top with a bunch of other defs and the main prog... my @init_array = ("","","","","","","","","",""); ################################ # function get_address # ################################ sub get_address { my ($dbh, $sth, $searchid, $name, $address1, $address2, $address3, $address4) = @init_array; $searchid = $query->param('searchid'); $searchid =~ s/[^\d]//go; # NOTE: If I do stuff up here with the address vars I do NOT # get a "uninitialized value" because of the = @init_array; my $sql = qq{ SELECT name, address1, address2, address3, address4 FROM db.addresses WHERE id = $searchid };# end of $sql $dbh = DBI->connect($connect_string, $user, $password) || die "Unable to connect: $DBI::errstr"; $sth = $dbh->prepare($sql) || die "Prepare failed: $dbh->errstr"; $sth->execute() || die "Execute failed for data retrieval: $dbh->errstr"; $sth->bind_columns(undef, \($name, $address1, $address2, $address3 ,$address4)); $sth->fetch || die "A record was not found for that ID"); # NOTE: Avoid an error about uninitialized var # (Why do I have to do this? when I inited up top) unless (defined $address4){$address4 = ""}; print "$name\n$address1\n$address2\n$address3\naddress4\n"; return(); }# end sub get_address ---------------------------------------------------------------- This is just some quick example code to base my questions on... 1. I am using the @init_array to avoid the majority of uninitialization errors. Is there a better way to do this? 2. Is there a better to handle the re-init of $address4? (DBD::Oracle must return UNDEF or some such for an empty address4 field.) 3. Are both of these questions moot because I should use -w while developing the cgi, but remove it before actual use? Thanks all, -Bill -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]