Erstmal freut mich, daß mein Hinweis Dir geholfen hat.
Tk kommt ja von Tcl/Tk. Ich weiß nicht, wie es da ist, aber ich kenne die Python-Implementierung "
Tkinter" recht gut (wenn ich das so sagen darf).
In Tkinter gibt es extra ein "Tkinter.Variable"-Objekt. Dieses besondere Objekt muß in Tkinter verwendet werden, wenn man im Entry mit "textvariable" arbeitet. Man kann also nicht einfach ein Standard-String-Objekt von Python nehmen, was ja einfacher wäre. Den Inhalt von "Tkinter.Variable"-Objekten bekommt man mit der ".get()"-Methode (".set()" gibt es auch).
In Perl könnten diese Zusammenhänge verwischt worden sein, weil es ja weniger streng typisiert ist (wenn das so richtig ausgedrückt ist). Das heißt, eine Skalar-Variable kann Zahl oder String oder sogar Referenz sein, vielleicht auch etwas, das dem "Tkinter.Variable"-Objekt entspricht.
Vielleicht ist es dann in speziellen Fällen schwierig, das korrekt aufzulösen.
Die Tk::Entry-Klasse bietet ja eine "->get()"-Methode. Wenn ich sicher sein wollte, daß ich einen Standard Perl-String erhalte, würde ich daher diese Methode verwenden.
Im übrigen ist es mit Perl/Tk leider ein gewisses Trauerspiel: Der Autor, Nick Ing-Simmons, ist 2006 verstorben. Perl/Tk wird wohl weiter gepflegt, aber nicht so intensiv. Es kann also sein, daß hier und da noch ein Bug ist.
ActivePerl, die Perl-Distribution von ActiveState, ist zu Tkx übergegangen.
Das ist alles sehr schade. Tkx will ich nicht lernen, und nur Tk entspricht Tkinter, so daß man gleichzeitig für Python und Perl entwickeln kann.
Ich finde, Tk verdient eine Renaissance. :)
Last edited: 2017-10-11 17:33:52 +0200 (CEST)