#!c:\perl\bin\perl.exe -w use strict; use warnings; my @products = qw (prod1 prod2); my %subs = ( prod1 => \&sub_prod1, prod2 => \&sub_prod2 ); foreach my $product (@products) { $subs{$product}->(); } sub sub_prod1 { print 1; } sub sub_prod2 { print 2; }