use Data::Dumper; $Data::Dumper::Useqq=1; my $items = [ qw(foo bar baz) ]; my $num = "1 2\0"; @nums = split (' ', $num); print Dumper @nums; my $i = scalar @$items; (warn "invalid items entered, try again\n") if grep (/\D/ || $_ < 1 || $_ > $i, @nums); __END__ $ ./picklist-test.pl $VAR1 = 1; $VAR2 = "2\0"; invalid items entered, try again