use 5.010; use strict; use warnings; $_ = '------BBBBB------------------------------------------------------------------------------------------------------------BBBBBB----BBBBBBBB-----------------BBBBBB--------------------------------------------------------BBBBBBB---------------BBBBB-----BBBBBBBBB------------------------------------BBBBBBBBB------BBBBBBBBB----------------------------BBBBBBBBB--------------------------------------BBBBBBBB-------BBBBBB---------------------BBBBBBB--------------------------BBBBBBBB----'; my $expected = 'iiiiiiMMMMMooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooMMMMMMiiiiMMMMMMMMoooooooooooooooooMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMoooooooooooooooMMMMMiiiiiMMMMMMMMMooooooooooooooooooooooooooooooooooooMMMMMMMMMiiiiiiMMMMMMMMMooooooooooooooooooooooooooooMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMMoooooooMMMMMMiiiiiiiiiiiiiiiiiiiiiMMMMMMMooooooooooooooooooooooooooMMMMMMMMiiii'; s/(^|B+)(-+)($|B+)/ $1 . ("i" x length($2)) . $3/eg; s/-/o/g; s/B/M/g; say $expected; say $_; say $expected eq $_ ? 'yes' : 'no';