while (my %hash = %{$sth->fetchrow_hashref})
%hash hat immer einen Wert, deshalb wird die Schleife nie beendet.
soweit kommt es gar nicht.
es gibt ne fehlermeldung: "Can't use an undefined value as a HASH reference".
d.h. also, dass mir fetchrow_hashref undef zurückgibt.
wenn ich den rückgabewert aber als scalar entgegennehme, steht da sehr wohl die referenz drin.
nun zum thema endlosschleife:
print "ich werde ausgegeben" if %hash = (1,2);
print "ich nicht" if %hash = ();
... würde also auch mit einem hash funzen - meiner meinung nach.