I agree with what renodino says, that is for big complex programs, use the Tk portion for visual display only, and keep the logic separate. Don't use Tk objects as containers to store your data, use them as viewports into your data.
Perl/Gtk2 relies heavily on it's signalling mechanisms, which may be what you are looking for, but be warned....it's what makes things difficult in Gtk2, and causes many to return to good'ole Tk. :-)
I'm not really a human, but I play one on earth.
flash japh