Frank Schönmann: Wundersame Wandlung eines Perl-Skripts...

Beitrag lesen

hi!

SCALAR(0x8055e58)...SCALAR(0x805a7e4)
vielen Dank fuer die schnelle Hilfe, noch dazu um diese Uhrzeit ;-)

Hm, wieso? Was ist an der Uhrzeit so ungewöhnlich? ;))

müsstest du stattdessen
$$var schreiben, um das Problem zu beseitigen.
Das dubiose ist aber, dass ich ABSOLUT NICHTS an dem Skript verändert
habe, sprich: es nicht neu auf den Server geladen habe, bevor es
anfing, den String auszugeben.

Kann ich auch nicht verstehen. Irgendwas muss sich ja geändert haben, sonst würde das nicht passieren.

Wenn ich deinen Tip richtig verstanden habe, soll ich also alle mit
"$" definierten Variablen durch Variablen mit "$$" ersetzen?

Wen in den referenzierten Variablen der richtige Inhalt steht, dann ja. Ansonsten dürfte dein Problem
schwerwiegender sein, als ich hier angenommen habe :)

Nochmal: Referenzen sind sowas ähnliches wie C-Pointer, nur machen sie weniger Probleme. Eine Referenz
zeigt auf eine andere Variable:
  $ref = $var;  # $ref ist jetzt eine Referenz auf $var
  print $ref;  # liefert SCALAR(0x...)
  print $var; # liefert auch SCALAR(0x...)
  print $var;  # liefert Variableninhalt
  print $$ref; # liefert Variableninhalt (De-Referenzierung)

Der Wert, der hinter SCALAR in Klammern steht ist eigentlich die Speicheradresse, an der der Wert der
Variabeln steht. Für den Programmierer dürfte diese Adresse in Perl jedoch (fast) nie von Bedeutung sein.

Alles weitere überlasse ich deiner Phanatasie ;)
...die, wie ich fürchte, in diesem Fall ein klein wenig eingeschränkt
ist ;-)

"perldoc perlref" ist dein Freund :)

bye, Frank!