my $r = \{expr}; #### my @rv = expr; my %h = @rv; my $hr = \%h; my $r = \$hr; #### $ThingsToDo{firstTask}; #### &{$ThingsToDo{firstTask}}(); #### $ThingsToDo{firstTask}->(); #### my %ThingsToDo = ( firstTask => sub { my $pkg = shift; $pkg->prepare(@_) }, ); ... $ThingsToDo{firstTask}->($project);