my $mw = MainWindow->new(); ... build_main_pane(\$mw); ... sub build_main_pane { my $mw = ${+shift}; my $mp = $mw->Scrolled(q{Pane}, -scrollbars => q{osoe}, -sticky => q{nsew}, ); $mp->pack(-fill => q{both}, -expand => 1); build_notebook($mp); return; } sub build_notebook { my ($parent) = @_; my $nb = $parent->NoteBook(); $nb->pack(-fill => q{both}, -expand => 1); build_pages($nb); return; } sub build_pages { my ($nb) = @_; build_example_page($nb); build_other_page($nb); ... build_last_page($nb); return; } sub build_example_page { my ($nb) = @_; my $example_page = $nb->add(example_page => -label => 'Example Page', ... ); ... }