#!/usr/bin/perl -w use strict; my $A = q(my $arg = shift;print "A ";print "$arg\n";); my $B = q(print "B\n";); my %subs = ( A => sub { $A }, B => sub { $B }, O => sub {my $arg = shift;print "O ";print "$arg\n";} ); for my $key (keys %subs ) { eval &{$subs{$key}}(10) ; }