Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Helper for keeping track of extreme values of objects
Perl
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib/Number
t
xt
.gitignore
.shipit
Changes
MANIFEST
MANIFEST.SKIP
Makefile.PL
README

README

NAME
    Number::Extreme - Helper for keeping track of extreme values of objects

SYNOPSIS
      use Number::Extreme;

      # a bunch of objects with the "high" attribute.
      my $id = 0;
      my @objects = map { { id => $id++, high => $_ } } shuffle (1..100);

      # create a highest-high tracker, which extracts "high" from given objects
      my $highest_high = Number::Extreme->max(sub { $_->{high} });

      # test the values
      $highest_high->test($_) for @objects;

      # now you have the highest high
      warn $highest_high;

      # and the object of that high
      warn $highest_high->current->{id};

DESCRIPTION
    Number::Extreme provides simple utility for a common task: tracking
    highest or lowest value of an attribute of objects, while keeping track
    of which object is of the extreme value.

  METHODS
    $class->max($extractor)
    $class->min($extractor)
        Helper constructors for creating max/min tracker. $extractor takes
        $_ as the object to be tested, and returns the attribute to be
        compared.

    $class->amax($array)
    $class->amin($array)
        Helper constructors for tracking max/min values of an arrayref.
        "test()" should be called with the array index.

    $obj->test($o)
        Update the tracker with new incoming object.

AUTHOR
    Chia-liang Kao <clkao@clkao.org>

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO
Something went wrong with that request. Please try again.