Veröffentlicht 10. April 200322 j Hi, wie kann ich in Perl einer Funktion eine Referenz übergeben? Also so das die Funktion die ihr übergebene Variavle ändert. Gruß Guybrush
10. April 200322 j http://perl-seiten.bei.t-online.de/perl/perl_ref.html das könnte dir helfen, ansonsten einfach wieder melden. mfg korea1
10. April 200322 j Autor Danke schonmal, ich hab aber tatsächlich noch ein Problem:rolleyes: BSP: $test= "Hallo!"; funk(\$test); sub($ref) { print $ref; } So müsste es doch gehen, oder? Es wird nämlich nichts ausgegeben.
10. April 200322 j müsstest du deine variable nicht wieder dereferenzieren? siehe beispiel aus dem link: Um von einer Referenz wieder zurück zur referenzierten Variablen zu kommen ("Dereferenzierung"), stellt man der Referenz das Symbol voran, das dem Typ des referenzierten Objekts entspricht. $nr = 42; $ref_nr = \$nr; $deref_nr = $$ref_nr; $test = "Hallo"; $ref_test = \$test; $de_ref_test = $$ref_test; dann müsste es funktionieren, oder? mfg
10. April 200322 j Autor Also das geht: $test = "Hallo!"; $r = \$test; print $$r; das aber nicht: $test = "Hallo!"; funk(\$test); sub funk($ref) { print $$ref; } :confused:
11. April 200322 j Argumente an Funktionen können nicht 'direkt' übergeben werden - Du mußt Sie mit shift Dir erst noch holen... $test = 'Hallo'; printRef(\$test); sub printRef { $ref = shift; print $$ref; }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.