Perl Lists: Utilizing List::Util - My String is Bigger Than Yours: The MaxStr(List) Story (
Page 5 of 5 )
To compare string values and extract the largest, we use maxstr. Below are some examples:
#!/usr/bin/perl
use List::Util qw(maxstr);
@Letters=('A','B','C','D');
$Big=maxstr(@Letters);
print $Big;
In this simple example, we compare the values of A, B, C, D. Which one is larger?
D
Pretty simple right? What about if we try something like this:
#!/usr/bin/perl
use List::Util qw(maxstr);
@Letters=('A','a','B','b','C','c','D','d');
$Big=maxstr(@Letters);
print $Big;
Guess which letter has the highest value? The result:
d
Lowercase letters in Perl have a higher value than uppercase. What about special characters?
#!/usr/bin/perl
use List::Util qw(maxstr);
@Letters=('A','a','B','b','C','c','D','d','!','@','#','$');
$Big=maxstr(@Letters);
print $Big;
Again, "d" wins the day.
You will note, of course, that a string can be a whole word and even numbers. Here we compare those:
#!/usr/bin/perl
use List::Util qw(maxstr);
@Letters=('Apple','Pie','999','@#$%!');
$Big=maxstr(@Letters);
print $Big;
The largest string value here is:
Pie
Lastly, consider this bizarre code, in which we compare the values a-z, A-Z, 1-100, and a bunch of shift characters:
#!/usr/bin/perl
use List::Util qw(maxstr);
@Letters=('A'..'Z','a'..'z','1'..'100','!','@','#','$','%','&','+');
$Big=maxstr(@Letters);
print $Big;
And the winner is....<insert drum roll here>:
z
Conclusion
Well as you can see, we barely scraped the surface in this article. There are four more subroutines left to go, which we should be able to cover in our next tutorial. The min() and minstr() work in a similar way to our max() and maxstr() subroutines. We'll also go over the shuffle() and sum(). So check back soon.
Till then...