my %menus = ( '1' => { 'ITEM' => 'List and Kill UDT* processes by user', 'ACTION' => sub { $RunCMD->('ListKillProc') }, }, '2' => { 'ITEM' => 'List and Kill Print Jobs', 'ACTION' => sub { $PrintSubmenu->('2') }, . . . #### $menu->{$MenuItem}->{'ACTION'}->(); #### my %menus = ( '1' => { 'ITEM' => 'List and Kill UDT* processes by user', 'ACTION' => $RunCMD->('ListKillProc'), }, '2' => { 'ITEM' => 'List and Kill Print Jobs', 'ACTION' => $PrintSubmenu->('2'), 'SUBMENU' => { '1' => { 'ITEM' => 'Show all Printers', 'ACTION' => $RunCMD->('showprintersall'), }, '2' => { 'ITEM' => 'Show user print jobs', 'ACTION' => $RunCMD->('showprintersuser'), }, '3' => { 'ITEM' => 'Show single printer', 'ACTION' => $RunCMD->('showprinter'), }, '4' => { 'ITEM' => 'Kill a print job', 'ACTION' => $RunCMD->('killprint'), }, } }, '3' => { 'ITEM' => 'Manage user accounts', 'ACTION' => $PrintSubmenu->('3'), 'SUBMENU' => { '1' => { 'ITEM' => 'Unlock user account', 'ACTION' => $RunCMD->('unlockuser'), }, '2' => { 'ITEM' => 'Change account password', 'ACTION' => $RunCMD->('changepass'), }, }, }, '4' => { 'ITEM' => 'Run App', 'ACTION' => $RunCMD->('APP'), }, '5' => { 'ITEM' => 'quit', 'ACTION' => $RunCMD->('quit'), }, );