Tk::Error: Undefined subroutine &Entry_Display_In_Wins::next_rand_or_recorded_file called at shown.pl line 1403. (command bound to event) at blib/lib/Tk.pm (autosplit into blib/lib/auto/Tk/Error.al) line 488 Tk::Error('MainWindow=HASH(0x667084)', 'Undefined subroutine &Entry_Display_In_Wins::next_rand_or_rec...', '', '(command bound to event)') called at /usr/lib/perl5/vendor_perl/5.8/cygwin/Tk.pm line 406 eval {...} called at /usr/lib/perl5/vendor_perl/5.8/cygwin/Tk.pm line 406 Tk::MainLoop called at shown.pl line 1720 main::main() called at shown.pl line 1727 ---- and ---- Tk::Error: Undefined subroutine &Entry_Display_In_Wins::write_db called at shown.pl line 1392. (command bound to event) at blib/lib/Tk.pm (autosplit into blib/lib/auto/Tk/Error.al) line 488 Tk::Error('MainWindow=HASH(0x667084)', 'Undefined subroutine &Entry_Display_In_Wins::write_db cal...', '', '(command bound to event)') called at /usr/lib/perl5/vendor_perl/5.8/cygwin/Tk.pm line 406 eval {...} called at /usr/lib/perl5/vendor_perl/5.8/cygwin/Tk.pm line 406 Tk::MainLoop called at shown.pl line 1720 main::main() called at shown.pl line 1727 #### package File_Rating_DB; #pckg ONE sub write_db(){}... package Entry_Ordering; #pckg TWO our @ISA = qw(File_Rating_DB); sub next_rand_or_recorded_file() {}... package Entry_Display_In_Wins; #pckg THREE our @ISA = qw(Entry_Ordering); sub __hk_space(){ call next_rand_or_recorded_file}... sub __hk_quit(){ ...calls write_db on exit } sub handle_key($tkcontext,$dbhandle,$key_event, $key_code) {} package Timed_Display_In_Wins; #pckg FOUR our @ISA = qw(Entry_Display_In_Wins); sub _handle_timer(){} #### $main_win->bind(''=>[\&handle_key, $s,Ev('A'), Ev('K')]);