for (@{$self->{menu}}) { if ((defined($val) && defined($_->{value}) && $val eq $_->{value}) || (!defined($val) && !defined($_->{value})) ) { $cur = $i; $disabled = $_->{disabled}; last unless $disabled; } $i++; }