You have written a Perl program for the Windows port of Perl and Tk, but you get a DOS shell window every time you start your program.
Add this to the start of your program:
BEGIN { if ($^O eq 'MSWin32') { require Win32::Console; Win32::Console::Free( ); } }
The Win32::Console module lets you control the terminal window that launched your program. All you need to do is close that window (or Free it in, in the peculiar parlance of the Windows API) and voilà—no pesky DOS shell window.
The documentation for the Win32::Console module, which is included with distributions of Perl destined for Microsoft systems
Copyright © 2003 O'Reilly & Associates. All rights reserved.