use warnings; use strict; use Tk; # Create the GUI # Create the Main Window and set the size to 500 x 200 my $mw = MainWindow->new; $mw->title("Cheat Checker"); my $sizeOfWindow = $mw->Canvas( -width => 500, -height => 80 )->pack; # Create the Menus $mw->configure( -menu => my $menubar = $mw->Menu ); my $fileMenu = $menubar->cascade( -label => '~File' ); my $helpMenu = $menubar->cascade( -label => '~Help' ); my $exitMenuOption = $fileMenu->command( -label => 'Exit', -underline => 0, -command => \&exit, ); my $aboutMenuOption = $helpMenu->command( -label => 'About', -underline => 0, -command => sub { my $d1 = $mw->Dialog( -text => "Cheat Checker\n" . "Version: 0.0.0.1\n" . "Andy Daykin\n" . "2-11-08", ); $d1->Show; } ); # Options for program settings my $labelDirPath = $mw->Label( -text => "Directory of files to grade" )->pack(); my $textDirPath = $mw->Entry( -width => 25, )->pack; my $labelFileExt = $mw->Label( -text => "File Extension to pick up" )->pack; my $textFileExt = $mw->Entry( -width => 25 )->pack; my $sumbitOptions = $mw->Button( -text => 'Submit', -command => sub { &runLoop( $textDirPath->get, $textFileExt->get ) } )->pack; # Program output window my $output = $mw->Text( qw/-width 60 -height 10/ )->pack; tie *STDOUT, ref $output, $output; # Initialize the GUI MainLoop; sub runLoop { print "Starting \$FindBin::Script " . localtime() . "...\n"; # Set parameters passed in to dirPath and fileExt my $dirPath = $_[0]; my $fileExt = $_[1]; print "dirPath: ", $dirPath, "\n"; print "fileExt: ", $fileExt, "\n"; # Set defaults if needed: # This is where it dies and spits out the error message unless ( -d $dirPath ) { die "The directory path '$dirPath' is not a valid directory, $!"; } unless ($fileExt) { die "You need to supply a file extension!"; } #blah blah blah I do some stuff :-) }