my $sth = $dbh->prepare ("select * from foo"); $sth->execute; while (my $ref = $sth->fetch) { print $ref->[0], "\n"; } # No need for $sth->finish; #### { my $sth = $dbh->prepare (...); $sth->execute; ... } # End-of-scope: $sth is destroyed #### { my $stu = $dbh->prepare ("update foo set blah = ? where c_foo = ?"); my $sth = $dbh->prepare ("select c_foo, bar from brimble"); $sth->execute; while (my $r = $sth->fetchrow_hashref) { $stu->execute ($r->{bar}, $r->{c_foo}); } # no need for $sth->finish $stu->finish; # Good practice } # End of scope: clean up