my %meta_char = ( '%' => sub { '%' }, c => sub { $chan }, m => sub { $in_message }, P => sub { $$ }, p => \&_get_package, s => \&_get_subroutine, t => \&_get_timedate, ); ($out_message = $log_format) =~ s/%(.)/$meta_char{$1}->()/ge;