Open In App

Perl | tr Operator

Last Updated : 11 Feb, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

The tr operator in Perl translates all characters of SearchList into the corresponding characters of ReplacementList.
Here the SearchList is the given input characters which are to be converted into the corresponding characters given in the ReplacementList.

Syntax: tr/SearchList/ReplacementList/

Return:number of characters replaced or deleted

Example 1: This example uses tr operator for translating from lower case to upper case.




#!/usr/bin/perl
   
# Initializing the strings
$string1 = 'gfg is a computer science portal';
$string2 = 'geeksforgeeks';
  
# Calling tr function
$string1 =~ tr/a-z/A-Z/;
$string2 =~ tr/a-z/A/;
  
# Printing the translated strings
print "$string1\n";
print "$string2\n";



Output:

GFG IS A COMPUTER SCIENCE PORTAL
AAAAAAAAAAAAA

Example 2: This example uses tr operator for translating from upper case to lower case.




#!/usr/bin/perl
   
# Initializing the strings
$string1 = 'GFG IS A COMPUTER SCIENCE PORTAL';
$string2 = 'GEEKSFORGEEKS';
  
# Calling tr function
$string1 =~ tr/A-Z/a-z/;
$string2 =~ tr/A-Z/p/;
  
# Printing translated strings
print "$string1\n";
print "$string2\n";


Output :

gfg is a computer science portal
ppppppppppppp

Example 3: This example uses tr operator for translating from upper case to numeric form.




#!/usr/bin/perl
   
# Initializing the strings
$string1 = 'GFG IS A COMPUTER SCIENCE PORTAL';
$string2 = 'GEEKSFORGEEKS';
  
# Calling tr function
$string1 =~ tr/A-Z/0-9/;
$string2 =~ tr/A-Z/5/;
  
# Printing translated strings
print "$string1\n";
print "$string2\n";


Output :

656 89 0 29999949 9284924 999909
5555555555555

Use of ‘s’ operator :
The ‘s’ operator is used at the end of ‘tr’ operator to detect the duplicate characters in the given string and replace them with the specified character.

Example:




#!/usr/bin/perl
   
# Initializing the strings
$string1 = 'geeksforgeeks';
$string2 = 'geeksforgeeks';
  
# Calling tr function
# without appending 's' to 'tr' operator
$string1 =~ tr/ee/e/;
  
# Appending 's' to 'tr' operator
$string2 =~ tr/ee/e/s;
  
# Printing translated strings
print "$string1\n";
print "$string2\n";


Output :

geeksforgeeks
geksforgeks

In the above code, it can be seen that when ‘s’ is appended to the end of ‘tr’ operator then it replaces repeated “e” i.e, “ee” with a single “e”.

Use of ‘c’ operator :
The ‘c’ operator is used at the end of ‘tr’ operator to detect the space (‘ ‘) character in the given string and replace it with the specified character.

Example:




#!/usr/bin/perl
   
# Initializing the strings
$string1 = 'gfg is a computer science portal';
$string2 = 'gfg is a computer science portal';
  
# Calling tr function
# without appending 'c' to 'tr' operator
$string1 =~ tr/a-z/_/;
  
# Appending 'c' to 'tr' operator
$string2 =~ tr/a-z/_/c;
  
# Printing translated strings
print "$string1\n";
print "$string2\n";


Output :

___ __ _ ________ _______ ______
gfg_is_a_computer_science_portal

In the above code, it can be seen that in between each word the sign underscore (“_”) is used which is done with the appending of ‘c’.

Note 1: This tr operator does the task of lc() function and uc() function as well as it translates the input characters into numeric form etc.

Note 2: This tr operator is slightly different from y operator because y operator does not use the appending of “c” or “s” to the operator but tr operator does.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads