$text->delete($start_index,$end_index); $text->insert($start_index,$my_new_text); #### use strict; use Tk; my $mw = MainWindow->new(); my $frame = $mw->Frame() ->pack(-side => "left", -expand => 1, -fill => 'both'); my $text = $frame->Scrolled('Text') ->pack(-expand => 1, -fill => 'both'); my $data; for (my $i = 1; $i < 20; $i++) { $data .= "abcdefghi $i \n"; } $text->insert('end',$data); my $but1 = $frame->Button(-text => "Replace in the middle", -command => [\&replace,$text,'3.0','7.0']) ->pack(-side => 'left'); my $but2 = $frame->Button(-text => "Replace in the end", -command => [\&replace,$text,'16.0','end']) ->pack(-side => 'left'); MainLoop(); sub replace { my ($text,$start_index,$end_index) = @_; my $old_data = $text->get($start_index,$end_index); $old_data =~ s/cdefg/12345/g; $text->delete($start_index,$end_index); $text->insert($start_index,$old_data); return; }