sub oneof {
 my $item = $_[0];     # The item to search for in the array.
 my $lstr = $_[1];     # List of items in string separated by commas
 my $sepr = $_[2];     # Separator (default is comma)
 
 # if the separator was not passed, then default to a comma.

 if ($sepr =~ /^$/ || $sepr !~ /.{1}/) { $sepr = ","; }

 # Split the list string into an array for the search.

 @list = split(/$sepr/,$lstr);

 $found = 0;           # Set found to 0 in case item is not found.

 # Search through the items in the list array from first (index = 0)
 # to last (index = number of items in list [ $#list ] - 1)

 for ($x = 0; $x < $#list; $x++) {
   if ($item eq $list[$x]) {
     $found = $x+1;    # Set found to index+1 if item is found.
     last;             # Discontinue for loop if found
   }
 }
 return $found;        # Return value of found to calling script.
}

Example 1: oneof subroutine with comments.

Back to Article