I've cobbled together a short PERL script to delete older records from the tables in a database. The DELETE works fine but when I try to put in a statement to return the number of rows deleted, I get an error.
The code reads as follows: sub run_query { # print "Query: ", $statement, "\n"; my $sth = $dbh->do($statement) or die "Can't prepare $statement: $dbh->errstr\n"; $numrows = ($sth->rows); # This is where the problem is print $numrows; } $dbh= DBI->connect("DBI:mysql:$db:host=$host", $user, $pass); $statement="SELECT rid FROM router"; # print "Query: ", $statement, "\n"; $sth = $dbh->prepare($statement) or die "Can't prepare $statement: $dbh->errstr\n"; $rv = $sth->execute or die "Can't execute the query: $sth->errstr\n"; while (@row = $sth->fetchrow_array ()) { push (@rid, $row[0]); } foreach $rid (@rid) { $statement="DELETE FROM ifInOctets_$rid WHERE dtime < '$deldate $deltime'"; &run_query($statement); print "$statement\t$numrows\n"; $statement="DELETE FROM ifOutOctets_$rid WHERE dtime < '$deldate $deltime'"; &run_query($statement); print "$statement\n"; $statement="DELETE FROM ifInErrors_$rid WHERE dtime < '$deldate $deltime'"; &run_query($statement); print "$statement\n"; $statement="DELETE FROM ifInUcastPkts_$rid WHERE dtime < '$deldate $deltime'"; &run_query($statement); print "$statement\n"; $statement="DELETE FROM ifOutUcastPkts_$rid WHERE dtime < '$deldate $deltime'"; &run_query($statement); print "$statement\n\n"; } The error message is: Can't call method "rows" without a package or object reference at ./cleandb.pl line 34. Could someone please kindly point out the glaringly obvious thing that I'm missing? Thanks, Jack Jack Coxen IP Network Engineer TelCove 712 North Main Street Coudersport, PA 16915 814-260-2705