in reply to transliteration d flag not working as expected
as the d flag should cause unmatched items to be deleted?
No. The /d flag is specified as: "Delete found but unreplaced characters.". Ie. Any character unmatched by the searchlist is left untouched
Since your search and replace lists are equal length, any characters matched will always be replaced, so nothing will ever be deleted.
Deletions will only occur if the replacement list is shorter than the search list; including the frequently used case of a null replacement list.
In addition, if you also specify /c, then only the t (ie. pre-translated f) will remain:
$s = 'alter'; $s =~ tr[this][flip]cd; print $s;; t
So, to get the effect you expected you could do two passes:
$s = 'alter'; $s =~ tr[this][flip]cd; print $s; t $s =~ tr[this][flip]; print $s;; f
|
|---|