#!/usr/bin/perl use warnings; use strict; use Tk; my $mw = MainWindow->new; my $lastbutton = 'blue'; my $rb = 'blue'; my $rb1 = $mw->Radiobutton(-text => "Button Blue", -value => 'blue', -variable => \$rb, -command => [ \&showRB, \$rb ])->pack; my $rb2 = $mw->Radiobutton(-text => "Button Red", -value => 'red', -variable => \$rb, -command => [ \&showRB, \$rb ])->pack; my $rb3 = $mw->Radiobutton(-text => "Button Green", -value => 'green', -variable => \$rb, -command => [ \&showRB, \$rb ])->pack; my $rb4 = $mw->Radiobutton(-text => "Button Hot Pink", -value => 'hotpink', -variable => \$rb, -command => [ \&showRB, \$rb ])->pack; my $but = $mw -> Button(-text=>"Preferred color", -command =>\&push_button)->pack(); my $but1 = $mw -> Button(-text=>"Submit", -command =>\&update_script)->pack(); MainLoop; sub push_button { foreach my $rb( $rb1,$rb2,$rb3, $rb4){ $rb->configure(-state => 'disabled'); } $mw->messageBox(-title => 'Status', -type => 'OK', -message => "Status is :$rb:. Previous State was $lastbutton"); } sub update_script{ $but1->configure(-bg => $rb); } sub showRB { print "Arg list is @_\n"; my $state_ref = shift; my $state = $$state_ref; $mw->messageBox(-title => 'Status', -type => 'OK', -message => "Status is :$state:. Previous State was $lastbutton"); $lastbutton = $state; }