Có một cách khác để thay thế một nhóm kí tự bằng nhóm khác : toán tử tr sẽ làm điều đó :
Cú pháp tr/string1/string2/
string1 là xâu chứa danh sách các kí tự sẽ được thay thế
string2 là xâu chứa danh sách các kí tự thay thế
kí tự đầu tiên trong string1 dược thay thế bởi kí tự đầu tiên trong string2 và tiếp tục. Ví dụ $string =~ tr/abc/def/;
Các kí tự được thay thế như sau
Tất cả các kí tự a được thay thế bởi kí tự d
Tất cả các kí tự b được thay thế bởi kí tự e
Tất cả các kí tự c được thay thế bởi kí tự f
$xau =~ tr/A-Z/a-z/; Chuyển đổi tất cả các chữ hoa trong xâu thành chữ thường.
Nếu xâu chứa kí tự được thay thế chứa nhiều kí tự hơn xâu thay thế, kí tự cuối cùng trong xâu thay thế được lặp lại
Kí tự d chưa có kí tự thay thế, do đó nó sẽ lấy kí tự cuối cùng trong xâu thay thế là g để thay thế nó. Có nghĩa là mọi kí tự d trong $string được thay thế bằng g
Nếu xâu chứa kí tự được thay thế có chứa nhiều kí tự giống nhau, kí tự thay thế đầu tiên được sử dụng $xau =~ tr/aba/def/; thay thế a bởi d
Với toán tử truyền đạt có 3 tuỳ chọn
Tuỳ chọn c thay thế tất cả các kí tự mà không được chỉ định $xau =~ tr/\d/ /c;
thay thế tất cả các kí tự không phải chữ cái bằng dấu cách Tuỳ chọn d xoá bỏ mọi kí tự được chỉ định
$string =~ tr/\t //d;
Xoá mọi khoảng trắng trong xâu
Tuỳ chọn s kiểm tra dữ liệu ra từ truyền đạt.