#!/usr/bin/perl -w my @p_dlruom = ("EACH","FEET","FT","IN","UNIT"); my %validator = ( P_12MONTHDEMANDQTY => \&validate_number, P_DLRUOM => \&validate_p_dlruom ); validate_fields(EACH, P_DLRUOM); sub validate_fields { my ($updateval, $colname) = @_; #print "$updateval $colname\n"; if (! exists $validator{ $colname }) { print "'$colname' is not a valid column name."; }; my $code = $validator{ $colname }; if (! $code->($updateval, $colname)) { print "'$updateval' is not a valid value for '$colname'."; } else { print "'$updateval' is a valid value for '$colname'."; return 1 }; } sub validate_p_dlruom { my $val = shift; my @match = grep (/$val/i, @p_dlruom); print "The value of $val you have chosen for P_DLRUOM is outside of the allowable range.\n" if !(@match); }