sub make_max_finder { my $max; sub { for (@_) { $max = $_ if !defined $max || $_ > $max } $max; } } #### make_max_finder->(1..10); # 10 #### my $max_finder = make_max_finder(); $max_finder->($_) while <>; $max_finder->(); # retrieve maximum