in reply to Scrolling data in Tk

You are right about the Scrolled Pane working better than the Scrolled Frame. Actually, the thing you probably want to do is put a Frame (packed so that it expands and fills) into a Scrolled Pane. The Scrolled Pane should take care of adjusting it's scrollbars to the new frame size, as you add widgets to the frame.
#!/usr/bin/perl use warnings; use strict; use Tk; use Tk::Pane; my $count = 10; my $Frame; my $mw = tkinit; my $pane = $mw->Scrolled( 'Pane', -scrollbars => 'e', ) ->pack( -expand => 1, -fill => 'both' ); $mw->Button( -text => 'Refresh', -command => \&Refresh, )->pack; Refresh(); MainLoop; sub Refresh { my @a; $count +=10; for ( my $i = 0 ; $i < $count ; $i++ ) { push( @a, int( rand(100) +) ) } DisplayCheckButtons( $pane, @a ); } sub DisplayCheckButtons { my ( $parent, @names ) = @_; $Frame->destroy if $Frame; $Frame = $parent->Frame->pack( -expand => 1, -fill => 'both' ); map { $Frame->Checkbutton( -text => $_ )->pack } @names; }

I'm not really a human, but I play one on earth. Cogito ergo sum a bum