use strict; use warnings; use Tk; my $cfg; my $font_colour; my $wd = MainWindow->new(); $wd->Label( -text => 'Color', -justify => 'right', )->grid( -column => 0, -row => 4, -pady => 20, -padx => 20, -sticky => 'e' ); my $colour_button = $wd->Button( -width => 6, -command => sub { $font_colour = colour_picker() }, )->grid( -column => 2, -row => 4, -pady => 20, -padx => 20, -sticky => 'e' ); if ($font_colour) { $colour_button->configure( -background => $font_colour, -activebackground => $font_colour ); } MainLoop; sub colour_picker { my $colour = $wd->chooseColor( -title => 'Color Picker', -initialcolor => '#000000' ); print "Colour chosen: " . $colour . "\n" if $colour; $colour_button->configure( -background => $colour, -activebackground => $colour ); return $colour; } #### Faulting application perl.exe, version 5.8.8.820, faulting module msvcrt.dll, version 7.0.2600.2180, fault address 0x000378c0.