sub get_loc { chomp $_[0]; # Aligned the "or" clauses with the main expressions my $dbh = DBI->connect("DBI:mysql:tracker:12.34.56.78", 'myuser', 'mypassword') or die "Connect to database failed: $DBI::errstr\n"; my $sth = $dbh->prepare("SELECT location FROM servers WHERE name=? LIMIT 1") or die "Couldn't prepare statement: $DBI::errstr\n"; $sth->execute($_[0]); # No point in assigning if you aren't going to use @loc anyway # return my @loc = $sth->fetchrow_array(); return $sth->fetchrow_array(); # This is dead code. Execution will jump out of the sub due to the return statement above! # Put disconnect call and "or" clause on same line $sth->finish; $dbh->disconnect or die "Error disconnecting: $DBI::errstr\n"; # Aligned "}"-line with "sub get_loc {" line }