in reply to Structure of a large Perl GUI application

I'm not the best at breaking things down into modules, but I may offer one bit of advice. You can have a single script be your starting point defining a $mw, with all the various helper scripts, put into modules, that accept the $mw as it's SUPER. Look at my simple module Tk::CanvasDirTree for how to use it. You can make as many of your own modules as you want,using my module as a model, and put update methods in them, then call $mymod->update($values) from your main script.
use Tk::widgets qw/Canvas/; use base qw/Tk::Derived Tk::Canvas/; sub ClassInit { my ($class, $mw) = @_; $class->SUPER::ClassInit($mw); $mw->bind($class, "<1>" =>'pick_one' ); return $class; }

I'm not really a human, but I play one on earth Remember How Lucky You Are