use strict; use Data::Dumper; ... my %results; foreach my $name (@diffarray) { my $code_name = "${name}_diff"; no strict 'refs'; my $code = \&{ $code_name }; $results{ $name } = [ $code->() ]; }; print Dumper \%results;