use strict; use Tk; use Tk::Notebook; my $main = MainWindow->new; my $menubar = $main->Menu(); # Default is never used my $execute = \&default; $main->configure(-menu => $menubar, ); my $menu = $menubar->cascade(-label => '~File', -menuitems => [ ['command', 'Execute', -command => \$execute], ['command', '~Exit', -command => sub{$main->destroy}], ] ); my $notebook = $main->NoteBook(); # Execute menu item changes with each tab my $tab1 =$notebook->add("tab1", -label => "Tab 1", -raisecmd => sub{ $execute = \&tab1 }, ); my $tab2 =$notebook->add("tab2", -label => "Tab 2", -raisecmd => sub{ $execute = \&tab2 }, ); $notebook->pack(); MainLoop; sub default{ print "Default\n"; } sub tab1{ print "Tab1\n"; } sub tab2{ print "Tab2\n"; }