my @keys_to_process = $x eq 'key_1' ? keys %my_hash : exists $my_hash{$x} ? ($x) : () # default - nothing to do ; foreach $key (@keys_to_process) { do_something_with($key); }