Set/CheckList version 1.00 ======================== 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