while (my ($k, $v) = each %foo) { ... } #### foreach my $k (keys %foo) { my $v = $foo{$k}; ... } #### print join ",", map { &{$field_info{$_}{format}}($deal) } @fields; print "\n"; #### my @field_subs = map {$field_info{$_}{format}} @fields; # time passes.. print join ",", map $_->($deal), @field_subs; print "\n";