in reply to Perl TK Submit enter incorrect routine

Personally, debugging is just done by putting print statements in the code to test my assumptions. You have already done this. I would help you debug it but you would have to provide a runnable program that exhibits the undesirable behaviour. I tried to reproduce your bug with the code you have provided by doing the following

I copied

 show_amend_userorderroute()
removed the sub declaration, commented out the sql and put
use Tk; my $window = MainWindow->new();
at the beginning, changed
my $frame = $mainmenu->Toplevel(-title => 'Amend User',);
to
my $frame = $window->Toplevel(-title => 'Amend User',);
and put
MainLoop();

at the end. I get

Tk::Error: Undefined subroutine &main::process_amend_userorderroute called at C: \Documents and Settings\blm\Desktop\test2.pl line 37. Tk callback for .toplevel.button Tk::__ANON__ at C:/Perl/site/lib/Tk.pm line 247 Tk::Button::butUp at C:/Perl/site/lib/Tk/Button.pm line 111 <ButtonRelease-1> (command bound to event)

This means the program tried to run the desired routine and I was unsuccessful in reproducing your bug. (I didn't bother copying and pasting the process_amend_userorderroute to my test code)