As others already said, strict and warnings would have stopped you in your tracks long ago. In any case, how about this (taking some liberties with your variable names and assuming your subs are defined already):
my $member_call = 'Captain'; # or something
my @allowed_ranks = qw/Recruit General Captain Civilian Airman/;
grep($_ eq $member_call, @allowed_ranks) ? Welcome() : NotWelcome(); #
+ using grep+ternary operator
Update: further explanation to address FamousLongAgo's concerns. qw takes a list of strings and allows them to be specified without commas or quotation marks delimiting each. It's nice to use whenever you've got more than a few entries. grep is a function that iterates through a list, setting the global variable $_ to the current element of the list. It evaluates either an expression (as here) or a block, and returns a list of elements from the original list for which the expression was true. Now the ternary operator is short hand for "if x, then y, else z" where "?" means "if" and ":" means "else".
Thus, we test to see if grep returned anything, and if so, call Welcome. Otherwise, call NotWelcome.
Hope that helps, fever