Guybrush Threepwood Geschrieben 10. April 2003 Geschrieben 10. April 2003 Hi, wie kann ich in Perl einer Funktion eine Referenz übergeben? Also so das die Funktion die ihr übergebene Variavle ändert. Gruß Guybrush
korea1 Geschrieben 10. April 2003 Geschrieben 10. April 2003 http://perl-seiten.bei.t-online.de/perl/perl_ref.html das könnte dir helfen, ansonsten einfach wieder melden. mfg korea1
Guybrush Threepwood Geschrieben 10. April 2003 Autor Geschrieben 10. April 2003 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.
korea1 Geschrieben 10. April 2003 Geschrieben 10. April 2003 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
Guybrush Threepwood Geschrieben 10. April 2003 Autor Geschrieben 10. April 2003 Also das geht: $test = "Hallo!"; $r = \$test; print $$r; das aber nicht: $test = "Hallo!"; funk(\$test); sub funk($ref) { print $$ref; } :confused:
korea1 Geschrieben 10. April 2003 Geschrieben 10. April 2003 hi, $test = "Hallo!"; funk(\$test); sub funk($$ref) { print $$ref; }
dr.disk Geschrieben 11. April 2003 Geschrieben 11. April 2003 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; }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden