in reply to Finding the max()/min()
As I offered in Re: getting the highest value in a simpler way, we can encapsulate our logic inside of a closure-based factory function that makes "maximum finders":
The nice thing about this approach is that the logic is captured in one place and yet we can use it both on big arrays and upon iterated-over data. The array method:sub make_max_finder { my $max; sub { for (@_) { $max = $_ if !defined $max || $_ > $max } $max; } }
The iterative, light-on-memory method:make_max_finder->(1..10); # 10
my $max_finder = make_max_finder(); $max_finder->($_) while <>; $max_finder->(); # retrieve maximum
Cheers,
Tom
Tom Moertel : Blog / Talks / CPAN / LectroTest / PXSL / Coffee / Movie Rating Decoder
|
---|