On Fri, Dec 20, 2013 at 10:39 AM, john boris <jbori...@gmail.com> wrote:

> 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
>

Actually Switch is considered rather bad.

#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";}
>
(...)

This looks rather a lot like `$school = $ARGV[0];` or maybe `$school =
shift;`.

In any case, your problem is that `==` is numeric comparison. If you had
warnings turned on, as you always should, it would warn you that you were
using a non-numeric value in a numeric comparison.

`eq` is the string/lexicographic comparison operator.

-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
_______________________________________________
Tech mailing list
Tech@lists.lopsa.org
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