Hello, I am trying to pass the parameters a user enters in the text to a subroutine. The values in my print message are correct, but the program does not work like it should. Here is my code:
# 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->Text(-width => 25,
-height => 1)->pack;
+
my $labelFileExt = $mw->Label(-text => "File Extension to pick up")->p
+ack;
my $textFileExt = $mw->Text(-width => 25,
-height => 1)->pack;
my $sumbitOptions = $mw->Button(-text => 'Submit',
-command => sub{&runLoop($textDirPath-
+>Contents, $textFileExt->Contents)})->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 v
+alid directory, $!"; }
unless($fileExt){ die "You need to supply a file extension!"; }
blah blah blah I do some stuff :-)
}
If I enter in C:\Test in the field $textDirPath, I will get a message saying that C:\Test is not a valid directory, even though it is. I had the program working from the command prompt, but when I tried to convert it to a GUI program I started getting errors
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.