in reply to Pattern matching simultaneous substitution

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11140181 use warnings; my %h = qw( bU i aU o bD o aD i ); while( <DATA> ) { print "\n$_" . <DATA>; /U|D/ or tr/s/i/; s/(s*)(U|D)(s*)/$h{"b$2"} x length($1) . 'M' . $h{"a$2"}x length($3) + /ge; print; } __DATA__ sssss iiiii sssUUss iiiMMoo sssDDss oooMMii sssssDDDDDDDssssUUUss oooooMMMMMMMiiiiMMMoo sssssUUUUUUUssssDDDss iiiiiMMMMMMMooooMMMii ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +sssssssssssssssssssssssssssssssssssssssssssssssss ??? ssDDDDDDDDDDDDDDDDDDDDDDssssssssDDDDDDDDDDssssssssDDDDDssssssssssssssD +DDDDDDDDDDDDDDDsDDDDDDDDDssssssssssssssUUUUUUUUUs ???

Outputs (input/expected/actual):

sssss iiiii iiiii sssUUss iiiMMoo iiiMMoo sssDDss oooMMii oooMMii sssssDDDDDDDssssUUUss oooooMMMMMMMiiiiMMMoo oooooMMMMMMMiiiiMMMoo sssssUUUUUUUssssDDDss iiiiiMMMMMMMooooMMMii iiiiiMMMMMMMooooMMMii ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +sssssssssssssssssssssssssssssssssssssssssssssssss ??? iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ssDDDDDDDDDDDDDDDDDDDDDDssssssssDDDDDDDDDDssssssssDDDDDssssssssssssssD +DDDDDDDDDDDDDDDsDDDDDDDDDssssssssssssssUUUUUUUUUs ??? ooMMMMMMMMMMMMMMMMMMMMMMiiiiiiiiMMMMMMMMMMiiiiiiiiMMMMMiiiiiiiiiiiiiiM +MMMMMMMMMMMMMMMiMMMMMMMMMiiiiiiiiiiiiiiMMMMMMMMMo

??? where no expected output was provided.