sub fancy_map { my ($opt, $list) = @_; map { ref $_ ? fancy_map ($opt, $_); : do { my $before = $opt->{'before'} ? $opt->{'before'}.' ' : ''; my $after = $opt->{'after'} ? ' '.$opt->{'after'} : ''; $before.$_.$after; } } @{$list}; }