[ale] Slightly ot: perl question.

John Cole jcole at filink.com
Mon Feb 14 14:12:56 EST 2005


Howdy all!

First of all, it is amazing how much knowledge you gain when you have to fix
systems you didn't design. :)

Well, my question for today is why this code snippet doesn't work.  It's in
a program I'm trying to utilize but I'm not getting the while loop to
activate.

# Open a ForkManager handle limiting the number of children
# to MAX_FORKS
$pm = new Parallel::ForkManager($scanq);

#Select scheduled scans to run.
$sth = $dbh->prepare(qq{
	SELECT scan.host, scan.sched_id, sched.sid, sched.timeout,
sched.username, sched.next_scan
	FROM nessus_scan scan, nessus_schedule sched
	WHERE scan.status = "S"
	AND scan.server_id=$serverid
	AND scan.sched_id=sched.id
	AND sched.next_scan > 0
	} );
$sth->execute;

while(($host, $schedid, $sid, $timeout, $username,
$scantime)=$sth->fetchrow_array){
	$pm->start and next; # Do the fork
	my $dbhf;

	$dbhf =
DBI->connect("$CONFIG{'DATABASEDSN'}:$CONFIG{'DATABASENAME'}:$CONFIG{'DATABA
SEHOST'}","$CONFIG{'DATABASEUSER'}","$CONFIG{'DATABASEPASSWORD'}", {
		PrintError => 0,
		RaiseError => 1,
		AutoCommit => 1 } ) or die("Failed to connect :
$DBI::errstr\n");


If I do a:
print $sth->fetchrow_array;
After the $sth->execute; I get the output from the db as requested.

I don't see how any of the variables in the while loop are being measured.
All that exists is a:
my ($host, $schedid, ...) at the very beginning of this perl script.

Any ideas anyone?

Thanks,
John Cole


This email and any files transmitted with it are solely intended for the use of the
addressee(s) and may contain information that is confidential and privileged. If 
you receive this email in error, please advise us by return email immediately. 
Please also disregard the contents of the email, delete it and destroy any copies 
immediately. 



More information about the Ale mailing list