http://www.perlmonks.org?node_id=494098


in reply to How A Function Becomes Higher Order

Closures are cool, but I dont really see any practical or theoretical benefit to what you are tutoring:
package Max; sub new { my $class = shift; my $max = undef; return bless \$max, $class; } sub compare{ return $_[1] > $_[2]; } sub max{ my $self = shift; for ( @_ ) { $$self = $_ if $$self == undef || $self->compare($_, $$self); } return $$self; } package StringMax; our @ISA = ('Max'); sub compare { return length($_[1]) > length($_[2]); } package main; my $max= new StringMax(); while ( <FH> ) { chomp; $max->max($_); } my $long_str = $max->max();
The same functions, the same number of lines - better organized for applying to real problems.



time was, I could move my arms like a bird and...