Thread Inhalt eines Arrays überprüfen: Wie macht man dass???
(14 answers)
Opened by Tom at 2004-09-02 21:13
[quote=Tom,05.09.2004, 18:29]
Code: (dl
)
print month_as_html("$rm","$ry","$links","$rechts","$cgi_path","$images_path","$datum","@test"); Uh, das ist aber schon ziemlich.... hm.... naja... *schweig* Also, so sollte man das nicht machen / geht es nicht, weil du damit alle Variablen "stringifizierst", d.h. alle Variablen werden in einen String umgewandelt, was bei einigen eigentlich kein Problem darstellt, z.b. wenn es vorher schon ein String war, oder bei Zahlen, da diese von Perl hinterher wieder automatisch in den benötigten Typ umgewandelt werden, ABER: Referenzen würdest du auch diese weise "zerstören", bei einer Array Referenz würde z.b. "ARRAY(0x123456)" als String übergeben, das kann man dann allerdinge nicht mehr dereferenzieren... Bei "@test" erhält du einen String, der alle Elemente des Strings mit - im Normalfall - einem Leerzeichen getrennt enthält. Beim "Abrufen" ladet dieser String dann als erstes Element in @test... deswegen geht's auch ned, bzw. nur, wenn @test vorher nur 1 Element enthalten hat... Lösung: Alle " wegschmeissen, und den Array als Referenz übergeben mit \@test, beim Auslesen dann statt @test $testref schreiben und in der nächsten Zeile die Referenz mit my @test = @$testref; dereferenzieren... und du solltest dich noch ein wenig mit Datenstrukturen beschäftigen... ;) |