just a thought, but couldn't you make your menus something like this?
$serverNum=0; @serverList=qw(ServerA ServerB ServerC); push(@menuOpts,"&Server","menuServer"); foreach $serverName (@serverList) { push(@menuOpts,"> &$serverNum $serverName","menu$serverName"); eval("sub menu${serverName}_Click { print(\"clicked $serverName\\n\"); }"); $serverNum++; } $menu=new Win32::GUI::Menu(@menuOpts); that would give you a menu like: &Server &1 ServerA &2 ServerB etc. i don't know how many servers are on the menu, but using numbers and letters would allow for 36. darrik >> except there is not really an easy way to create >> accelorator keys for the menu items since it is dynamic.