#!/usr/bin/perl -w use strict; my %dispatch = ( f11 => \&function11, f12 => \&function12, f21 => \&function21, f22 => \&function22, ); sub function11 { return "Function 1-1\n"; } sub function12 { return "Function 1-2\n"; } sub function21 { return "Function 2-1\n"; } sub function22 { return "Function 2-2\n"; } for my $i (1..2) { for my $j (1..2) { print $dispatch{"f$i$j"}->(); } }