Hmm, interesting. Are you by any chance trying to run the code from within a GUI debugger ? If I run your code from within Perl builder I get 2 windows. If I save the code and run it from a command window I get 3 windows !
Can't explain it but I'll keep thinking. I've replicated the behaviour with this code : use Win32::GUI; use strict; my $W = new Win32::GUI::Window( -title => "Window1", -left => 100, -top => 100, -width => 280, -height => 260, -name => "Window", ); my $X = new Win32::GUI::Window( -title => "Window2", -left => 150, -top => 150, -width => 280, -height => 260, -name => "Window2", ); $W->Show(); $X->Show(); Win32::GUI::Dialog(); If I run it through the debugger both $W and $X get initialised to Win32::GUI::Window objects but only window $W is shown. It seems to be the order that you call $WINDOW->Show(); If I move the $X->Show(); line before the corresponding line for window $W then window $W is shown but not window $X !!! Ah well so much for IDEs ! Cheers Paul ******************************************************************************* Important. Confidentiality: This communication is intended for the above-named person and may be confidential and/or legally privileged. Any opinions expressed in this communication are not necessarily those of the company. If it has come to you in error you must take no action based on it, nor must you copy or show it to anyone; please delete/destroy and inform the sender immediately. Monitoring/Viruses Orange may monitor all incoming and outgoing emails in line with current legislation. Although we have taken steps to ensure that this email and attachments are free from any virus, we advise that in keeping with good computing practice the recipient should ensure they are actually virus free. Orange PCS Limited is a subsidiary of Orange SA and is registered in England No 2178917, with its address at St James Court, Great Park Road, Almondsbury Park, Bradley Stoke, Bristol BS32 4QJ. *******************************************************************************