Hi,
Aber dann dürfte beim 2 Beispiel ja kein Wert in $kleingetier sein, wenn es ja dann ein Array mit einem anlegt ...
im Gegensatz zu den meisten anderen Sprachen geht Perl sehr, ähm, frei mit seinen Datentypen um. Wendest Du eine Stringfunktion auf eine Zahl an, so wird sie als String behandelt; wendest Du eine Arrayfunktion auf einen Hash ein, so wird dieses als Array behandelt; wendest Du eine Stringfunktion auf ein Array an, so wird versucht, das beste daraus zu machen. Bei einem Array mit nur einem Element wird es dann halt als Skalar behandelt.
Diese Aussage ist übrigens ziemlich stark verallgemeinert - bitte fehlinterpretiere sie nicht als Definition. Viele Funktionen sind bereits von sich aus so gestaltet, dass sie mit unterschiedlichen Datentypen jeweils sinnvoll umgehen; bei allen anderen Fällen versucht Perl eben, so gut wie möglich mit dem Fehler (ja, es ist einer) umzugehen.
Cheatah