my %SomeHashWithCoderefs = ( FOO => \&foo, BAR => \&bar, BAZ => \&baz, ); sub Switcheroo { my @conditions = @_; # Using the @conditions, return 'FOO', 'BAR', or 'BAZ' } # In some main area... $SomeHashWithCoderefs{Switcheroo(@args)}->(@otherargs);