in reply to Dynamic execution of expression

If the !exists ( $hash{key} ) is actually a literal in your program (and not user input), it's probably better to implement that with code references:
my %hash; my $condition = sub { ! exists $hash{key} }; # and later on use it as if ($condition->()) { print "'key' does not exists in \%hash\n"; }