AI-MicroStructure
view release on metacpan or search on metacpan
lib/AI/MicroStructure/List.pm view on Meta::CPAN
bless { cache => [] }, $class;
}
sub structure {
my $class = ref $_[0] || $_[0];
no strict 'refs';
return ${"$class\::Theme"};
}
1;
__END__
=head1 NAME
AI::MicroStructure::List - Base class for simple lists of names
=head1 SYNOPSIS
package AI::MicroStructure::beatles;
use AI::MicroStructure::List;
our @ISA = ( AI::MicroStructure::List );
__PACKAGE__->init();
1;
=head1 NAME
AI::MicroStructure::beatles - The fab four structure
=head1 DESCRIPTION
Ladies and gentlemen, I<The Beatles>. I<(hysteric cries)>
=cut
__DATA__
# names
john paul
george ringo
=head1 DESCRIPTION
C<AI::MicroStructure::List> is the base class for all structures that are
meant to return a random excerpt from a predefined list.
=head1 METHOD
AI::MicroStructure::List offers several methods, so that the subclasses
are easy to write (see full example in L<SYNOPSIS>):
=over 4
=item new()
The constructor of a single instance. An instance will not repeat items
until the list is exhausted.
=item init()
init() must be called when the subclass is loaded, so as to read the
__DATA__ section and fully initialise it.
=item name( $count )
Return $count names (default: C<1>).
Using C<0> will return the whole list in list context, and the size of the
list in scalar context.
=item structure()
Return the structure name.
=back
=head1 AUTHOR
Philippe 'BooK' Bruhat, C<< <book@cpan.org> >>
=head1 COPYRIGHT
Copyright 2005-2012 Philippe 'BooK' Bruhat, All Rights Reserved.
=head1 LICENSE
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
( run in 0.433 second using v1.01-cache-2.11-cpan-39bf76dae61 )