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 )