in reply to GUI issue

You don't need a loop to do a hash lookup.

if (exists $f_switch_val{'man'}) { ... }

Is faster, less code and harder to screw up.

Update: reading the code twice, it appears you are searching for a value, not for a key. If that's the case, the proper solution is to construct the hash the other way round, so that the common lookup is by key, not by value.