Hallo,
if ($STH->rows != 0) {
Zitat aus der DBI_Doku:
Returns the number of rows affected by the last row affecting command, or -1 if the number of rows is not known or not available.
Und weiter:
... So use of the rows method or $DBI::rows with SELECT statements is not recommended.
Fazit:
Löse es anders. z.B.könntest Du beim ersten erfolgreichen fetchrow_*() den allgemeinen Kopf ausgeben und, wenn das nicht erfolgreich war, den Kein-Treffer-Kopf.
btw. $STH entspricht nicht den Perl-üblichen Styleguides. Näheres dazu in perldoc perlstyle.
Grüße
Klaus