Perl has always been known for its text processing and manipulation abilities. This article examines the Perl string handling API in greater detail, explaining how you can use Perl's string functions to (among other things) print and format strings, split and join string values, alter string case, and perform regular expression searches.
The next few string functions come in very handy when adjusting the case of a text string from lower- to upper-case, or vice-versa:
lc() - convert string to lower case
uc() - convert string to upper case
ucfirst() - convert the first character of string to upper case
lcfirst() - convert the first character of a string to lower case
Here's an example:
#!/usr/bin/perl
$str = "Something's rotten in the state of Denmark";
# returns "something's rotten in the state of denmark"
print lc($str);
# returns "SOMETHING'S ROTTEN IN THE STATE OF DENMARK"
print uc($str);
# returns "something's rotten in the state of Denmark"
print lcfirst($str);
# re-initialize for next bit of code
$str = "something's rotten in the state of Denmark";
# returns "Something's rotten in the state of Denmark"
print ucfirst($str);
You've already used the print() function extensively to display output. However, the print() function doesn't allow you to format output in any significant manner - for example, you can't write 1000 as 1,000 or 1 as 00001. And so clever Perl developers came up with the sprintf() function, which allows you to define the format in which data is printed.
As you might imagine, that's not very friendly. Ideally, you'd like to display just the "significant digits" of the result. And so, you'd use the sprintf() function:
A quick word of explanation here: the Perl's sprintf() function is very similar to the printf() function that C programmers are used to. In order to format the output, you need to use "field templates", templates which represent the format you'd like to display.
Some common field templates are:
%s - string
%d - decimal number
%x - hexadecimal number
%o - octal number
%f - float number
You can also combine these field templates with numbers which indicate the number of digits to display - for example, %1.2f implies that Perl should only display two digits after the decimal point. If you'd like the formatted string to have a minimum length, you can tell Perl which character to use for padding by prefixing it with a single quote (').