in reply to problems with frame widgets of tk

I think I found your problem, you have to define a frame for each "Model File" and "Range File" lines and make them to pack to the top and fill 100% the x axis, then within the frames you add all components justified to the left

# CREATE MODEL FILE FRAME my $model_info_frame = $mw->Frame->pack( -side => "top", -fill => 'x' +); # Label $model_info_frame->Label( -text => "Model File : " )->pack( -side => " +left" ); # Input field $model_info_frame->Entry( -width => 60, -textvariable => \$filename )->pack( -side => "left" ); # Browse files button $model_info_frame->Button( -text => "...", -command => sub { $filename = $mw->getOpenFile( -title => 'File Browser' ); } )->pack( -side => "left" ); # CREATE RANGE FILE FRAME my $range_info_frame = $mw->Frame->pack( -side => "top", -fill => 'x' +); # Label $range_info_frame->Label( -text => "Range File : " )->pack( -side => " +left" ); # Input field $range_info_frame->Entry( -width => 60, -textvariable => \$filename )->pack( -side => "left" ); # Browse files button $range_info_frame->Button( -text => "...", -command => sub { $filename = $mw->getOpenFile( -title => 'File Browser' ); } )->pack( -side => "left" );

your code has mixed syntax like grid and pack, use grid to define layouts based on rows and columns