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...
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |