Fugly is subjective, of course. However, what do you think about this?
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', 'mypas
+sword')
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
}