use strict; sub decorate { my ($cb,$text) = @_; return $cb->($text); } my %sub = ( bold => sub { return '' . shift() . '' }, ital => sub { return '' . shift() . '' }, undl => sub { return '' . shift() . '' }, ); for (keys %sub) { print decorate($sub{$_},'foobar'), "\n"; }