The book
Advanced Perl Programming by Sriram Srinivasan contains a
perl script to display the content of man pages in a TK window. When attempting to run the script under the current cygwin, using its version of perl, TK, X, etc. I get a stack dump:
$ perlman.pl
Scouting man directories
Starting UI ...Tk::Error: Can't set -activebackground to `undef' for T
+k::Menu=HASH(0x103a7ad0): Cannot use undef value for object of type '
+border' at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/Tk/Configure.p
+m line 46.
at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/Tk/Derived.pm line 294
Tk callback for .
Tk callback for .frame
Tk::Derived::configure at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin
+/Tk/Derived.pm line 306
Tk::Widget::new at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/Tk/Wid
+get.pm line 205
Tk::Widget::__ANON__ at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/T
+k/Widget.pm line 256
Tk::Menubutton::menu at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/T
+k/Menubutton.pm line 348
Tk::Menubutton::separator at /usr/lib/perl5/vendor_perl/5.10/i686-cyg
+win/Tk/Menubutton.pm line 358
main::create_ui at script/perlman.pl line 105
Can't set -activebackground to `undef' for Tk::Menu=HASH(0x103a7ad0):
+Cannot use undef value for object of type 'border' at /usr/lib/perl5/
+vendor_perl/5.10/i686-cygwin/Tk/Configure.pm line 46.
at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/Tk/Derived.pm line 294
at /usr/lib/perl5/vendor_perl/5.10/i686-cygwin/Tk/Derived.pm line 306
However, when invoked through the debugger the script runs just fine:
$ perl -d perlman.pl
Loading DB routines from perl5db.pl version 1.3
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main::(perlman.pl:8): print STDERR "Scouting man directories\n";
DB<1> c
Scouting man directories
Starting UI ...Done
...after which the Perlman window appears.
Any ideas?