foreach my $row ($sth->fetchrow_arrayref()){
print ".HIER\n";
$var1 = join("|",@row);
print "$var1\n";
}
Was Du hier machst:
foreach my $row ($sth->fetchrow_arrayref()){
Du willst über alle Elemente der Liste iterieren, die
$sth->fetchrow_arrayref liefert. Da Du immer nur eine Zeile anforderst bei dem Aufruf, bekommst Du nur ein Element zurück (deswegen muss die
while-Schleife verwendet werden - wie von MartinR gezeigt). Die Arrayreferenz speicherst Du in dem
SCALAR $row.
Das
print ist klar...
Du speicherst in
$var einen String, der aus allen Elementen des
ARRAYs
@row zusammengesetzt ist (mit jeweils eineim
| zwischen den Elementen). Auch wenn Du den gleichen "Namen" verwendest, sind doch
SCALAR und
ARRAY etwas komplett unterschiedliches...
Wie ptk schon anmerkte, solltest Du
[tt]use strict[/tt] verwenden...