It's not entirely clear what you're trying to accomplish (or demonstrate) with that code snippet. It is using a variable that is never assigned a value ($little), and it never even uses the function ucfirst. ...and there's no function called 'lsfirst' (at least not as part of core Perl).
But I can assure you that the \L, \U, \l, and \u metacharacters do work, as do their function based cousins, lc, uc, lcfirst, and ucfirst:
my $string_upper = "BAR";
my $string_lower = "bar";
print "Testing metacharacter operations.\n";
print "\\L: [$string_upper] => [\L$string_upper]\n";
print "\\U: [$string_lower] => [\U$string_lower]\n";
print "\\l: [$string_upper] => [\l$string_upper]\n";
print "\\u: [$string_lower] => [\u$string_lower]\n";
print "\nTesting function operations.\n";
print " lc($string_upper) => (" , lc $string_upper, ")\n";
print " uc($string_lower) => (" , uc $string_lower, ")\n";
print "lcfirst($string_upper) => (" , lcfirst $string_upper, ")\n";
print "ucfirst($string_lower) => (" , ucfirst $string_lower, ")\n";
...produces...
Testing metacharacter operations.
\L: [BAR] => [bar]
\U: [bar] => [BAR]
\l: [BAR] => [bAR]
\u: [bar] => [Bar]
Testing function operations.
lc(BAR) => (bar)
uc(bar) => (BAR)
lcfirst(BAR) => (bAR)
ucfirst(bar) => (Bar)
|