http://www.perlmonks.org?node_id=513234

matt.tovey has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks, I have a Tk application that, apart from it's own window, needs to open a MainWindow on a large number of other displays (today: 20+, tomorrow: ??). This is going to be somewhat error-prone, and the application should be able to continue to run on whichever nodes do manage to start up successfully, so I need the opening of the MainWindow's to not cause too many problems in the event that a node is down, a display does not allow connections, etc. This is what I'm thinking so far:
use strict; use Tk; my @Displays = qw"node1:0 node2:0"; my $top = MainWindow->new(); my %top; my $orig_display = $ENV{'DISPLAY'}; foreach (@Displays) { $ENV{'DISPLAY'} = $_; if (eval {$top{$_} = MainWindow->new()}) { print "MainWindow opened on $_\n"; } else { print "MainWindow failed to open on $_\n"; $top{$_} = 0; } } $ENV{'DISPLAY'} = $orig_display; MainLoop;
Can anybody see any problems with this? Or perhaps have any ideas, how this could be done better? I couldn't find any documentation for MainWindow... Cheers, Matt