I have this perl script that I have a long if/elsif portion. I am porting a
shell script to perl so I am trying to mimic a case statement from a shell
script. I know I should use Switch but the version of PERL I am using (a
bit old) and have to stay at the version does not have the switch.pm in
cpan. I would have to compile it myself, which I don't want to do.
I don't get any errors when it runs but the logic is not working. It will
only evaluate the first if statement. Here is the snippet:

#Okay lets setup the school variable
#For sanity lets make sure we got the correct variable from the script
print "$ARGV[0]\n";  #this prints the correct variable
if  ($ARGV[0] == "rc") {$school = "rc"} #This line is the only line
evaluated. I always get this value
        elsif ($ARGV[0] == "bp") {$school = "bp";}
        elsif ($ARGV[0] == "ac") {$school = "ac";}
        elsif ($ARGV[0] == "ce") {$school = "ce";}
        elsif ($ARGV[0] == "ng") {$school = "ng";}
        elsif ($ARGV[0] == "jh") {$school = "jh";}
        elsif ($ARGV[0] == "hu") {$school = "hu";}
        elsif ($ARGV[0] == "fj") {$school = "fj";}
        elsif ($ARGV[0] == "lc") {$school = "lc";}
        elsif ($ARGV[0] == "lf") {$school = "lf";}
        elsif ($ARGV[0] == "md") {$school = "md";}
        elsif ($ARGV[0] == "oh") {$school = "oh";}
        elsif ($ARGV[0] == "ar") {$school = "ar";}
        elsif ($ARGV[0] == "sh") {$school = "sh";}
        elsif ($ARGV[0] == "wc") {$school = "wc";}
        elsif ($ARGV[0] == "aw") {$school = "aw";}
        elsif ($ARGV[0] == "jc") {$school = "jc";}
        elsif($ARGV[0] == "jp") {$school = "jp";}

#Some lines snipped out
print "For the Week starting $dates[0]\n ";
print "This week $school had $admissions Admissions and $withdraws
Withdrawals.\n";
print "Year to date $school had $ytodadmit Admissions and $ytodwdraw
Withdrawals.\n";
print "$school:$admissions:$withdraws:$ytodadmit:$ytodwdraw\n";

#End of script

I get this output

oh  #<-This value is correct
For the Week starting 12162013
 This week rc had       0 Admissions and       2 Withdrawals.
Year to date rc had      81 Admissions and     117 Withdrawals.
rc:      0:      2:     81:    117


The rc should be oh. So I have the logic wrong or maybe you can't do what I
want with if/elsif statements.  The two character in the if/elsif snippet
is going to be changed to a full name. I have it at 2 characters right now
for brevity while I debug this portion.


Thanks in Advance
-- 
John J. Boris, Sr.
Online Services
www.onlinesvc.com
_______________________________________________
Tech mailing list
[email protected]
https://lists.lopsa.org/cgi-bin/mailman/listinfo/tech
This list provided by the League of Professional System Administrators
 http://lopsa.org/

Reply via email to