Acme::MetaSyntactic::MultiList - Base class for themes with multiple lists
package Acme::MetaSyntactic::digits; use Acme::MetaSyntactic::MultiList; our @ISA = ( Acme::MetaSyntactic::MultiList ); __PACKAGE__->init(); 1; =head1 NAME Acme::MetaSyntactic::digits - The numbers theme =head1 DESCRIPTION You can count on this module. Almost. =cut __DATA__ # default :all # names primes even two # names primes odd three five seven # names composites even four six eight # names composites odd nine # names other zero one
Acme::MetaSyntactic::MultiList is the base class for all themes that are meant to return a random excerpt from a predefined list divided in categories.
Acme::MetaSyntactic::MultiList
The category is selected at construction time from:
the given category parameter,
category
the default category for the selected theme.
Categories and sub-categories are separated by a / character.
/
Acme::MetaSyntactic::MultiList offers several methods, so that the subclasses are easy to write (see full example in SYNOPSIS):
The constructor of a single instance. An instance will not repeat items until the list is exhausted.
$meta = Acme::MetaSyntactic::digits->new( category => 'primes' ); $meta = Acme::MetaSyntactic::digits->new( category => 'primes/odd' );
The special category :all will use all the items in all categories.
:all
$meta = Acme::MetaSyntactic::digits->new( category => ':all' );
If no category parameter is given, Acme::MetaSyntactic::MultiList will use the class default. If the class doesn't define a default, then :all is used.
init() must be called when the subclass is loaded, so as to read the __DATA__ section and fully initialise it.
Return $count names (default: 1).
1
Using 0 will return the whole list in list context, and the size of the list in scalar context (according to the category parameter passed to the constructor).
0
Return the selected category for this instance.
Return the categories supported by the theme (except :all).
Return a boolean value indicating if the theme contains the given category.
Return the theme name.
Philippe 'BooK' Bruhat, <book@cpan.org>
<book@cpan.org>
Copyright 2006 Philippe 'BooK' Bruhat, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Acme::MetaSyntactic, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Acme::MetaSyntactic
CPAN shell
perl -MCPAN -e shell install Acme::MetaSyntactic
For more information on module installation, please visit the detailed CPAN module installation guide.