I gave up on the code below and downloaded the switch module from cpan. This was a simple solution that filled my immediate need, however I am still interested in the capabilities of loading a hash with subroutine calls and the details of submitting arguments to those subroutines.(I don't understand quite how to do that)
Kevin Ailes Administrator OTTO Engineering -----Original Message----- From: Gossett, Malachy [mailto:[EMAIL PROTECTED]] Sent: Wednesday, August 21, 2002 5:01 PM To: [EMAIL PROTECTED] Subject: RE: Perl Case Statement The only 'CASE' structure in PERL (which is a gripe of mine as well) is with the 'SWITCH' statement. The PERL base documentation has examples as well as the PERL Black book. I think even the PERL for Dummies has it, but I'm not suggesting anything with that. -----Original Message----- From: Ailes, Kevin [mailto:[EMAIL PROTECTED]] Sent: Wednesday, August 21, 2002 2:16 PM To: Perl-win32-admin list ([EMAIL PROTECTED]) Subject: Perl Case Statement Ok, I looked up some documentation and found something that might work. The only problem is I'm unfamiliar with the particular task that is described in the docs. Here is what it says in the docs... --------- A totally different approach is to create a hash of function references. my %commands = ( "happy" => \&joy, "sad", => \&sullen, "done" => sub { die "See ya!" }, "mad" => \&angry, ); print "How are you? "; chomp($string = <STDIN>); if ($commands{$string}) { $commands{$string}->(); } else { print "No such command: $string\n"; } --------- I think this would be the best method for me because I have a bunch of subroutines that I would like to reference in my hash. I run into a problem when I try to insert some arguments into the hash that need to be sent to my subroutines. I have some variable arguments that aren't defined yet but will be when the command is executed in the if statement toward the bottom of the code. Am I missing something here? Here is some of my code....I have a web page that gets output if there is no state variable submitted otherwise the apropriate state defines the subroutine call. ----------- my %commands = ( "ItemsEnteredThisWeek" => \&RecentlyEnteredItems(\$dbh,"ThisWeek"), "ItemsEnteredThisMonth", => \&RecentlyEnteredItems(\$dbh,"ThisMonth"), "ECOLookup" => \&ECOLookup(\$dbh,\$FormData{"input"}) ); if ($commands{$FormData{"state"}}) { my $dbh = DBI->connect("dbi:ODBC:--server--", "--username---", "--password--", { PrintError => 0, RaiseError => 1} ) or die "Can't connect to ODBC database: $DBI::errstr\n"; $commands{$FormData{"state"}}->(); $dbh->disconnect(); } else { print '<html><h1>Kevs - Online Reports</h1><br>'; print '<font size=4>This application takes input and extracts the specified report'; print ' from the business system and displays the results in your web browser.</font><p>'; print '<form name="Webflo" action="../cgi-bin/kevsflo.pl" method="post">'."\n"; print '<table><tr><th>Report Type</th><th>Input</th></tr>'; print '<tr><td>'."\n"; print '<select name="state"><option value="RecentlyEnteredItems">Recently Entered Item Numbers</option>'."\n"; print '<option value="ECOLookup">Engineering Change by OCN</option></select></td><td>'."\n"; print '<input type="text" name="input" size="20" value="" maxlength="20"></td></tr></table>'; print '<input type="submit" name="submitButtonName">'."\n"; print '</form>'."\n"; print '<br><b>Please note that if you get no report displayed after submitting a request'; print ' it probably means that you entered an invalid part number.</b><br>'; print '</html>'; } ----------- Thanks for any help Kevin Ailes Administrator OTTO Engineering _______________________________________________ Perl-Win32-Admin mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs _______________________________________________ Perl-Win32-Admin mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs _______________________________________________ Perl-Win32-Admin mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs