NAME

Set::CheckList - Keep track of a list of "to do" items

SYNOPSIS

use Set::CheckList;
my ($checklist, $item);

$checklist = Set::CheckList->new();
$checklist->set('Fred');

while (defined($item = $cl->next())) {
   # items can be set in the middle of a loop
   $checklist->set('Wilma');
   
   # setting an item again doesn't change its done status
   $checklist->set('Fred');
   
   print $item, "\n"
}

INSTALLATION

Set::CheckList can be installed with the usual routine:

perl Makefile.PL
make
make test
make install

You can also just copy CheckList.pm into the Set/ directory of one of your library trees.

DESCRIPTION

Set::CheckList provides a mechanism for tracking a list of "to do" items. Each item can be added to the list any number of times, but is returned only once by the next() command.

Items are added using set(). The first argument for set() is the name (i.e. the key) of the item. If set() is called w/o any further arguments then CheckList only adds the item if it is not already in the list. If the second argument is 0, then the item in the list is marked as false (not done). If the second argument is 1, then the item in the list is marked as true (done).

METHODS

Set::CheckList->new()

The new method returns a new Set::CheckList object. new uses no arguments.

$checklist = Set::CheckList->new;

$checklist->set(key [, value])

Ensures that the given name is in the list. If a value is not given as the first argument, and the item is already in the list, the item's done status is not changed, otherwise the item is added with a done status of false. If value is given, sets the item to the given value (true or false).

# ensure the item is in the list,
# but don't change its value if is
# already there
$checklist->set('Larry');

# ensure the item is in the list,
# and set its value to done
$checklist->set('Larry', 1);

$checklist->next([autocheck])

Returns the next not-done value in the list. Returns undef if all are done. By default, next automatically marks the returned item as true. Therefore you can simply loop through the list by repeatedly calling next:

while (defined($item = $cl->next()))
   {print $item, "\n"}

If the first argument is defined but false, next does not mark the next item as done. If you send true as the first argument then the item is marked as done.

next does not return items in any particular order.

$checklist->clear()

clear clears out all items from the list:

$checklist->clear();

$checklist->reset([status])

reset resets the done status of all items in the list.

$checklist->reset

The first and only argument indicates if they should be set to done (true) or not done (false). So, for example, the following command resets all items to done:

$checklist->reset(1);

TERMS AND CONDITIONS

Copyright (c) 2002 by Miko O'Sullivan. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This software comes with NO WARRANTY of any kind.

AUTHOR

Miko O'Sullivan miko@idocs.com

VERSION

Version 1.00 July 10, 2002