The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Queue::Base - Simple OO style queue implementation.

SYNOPSIS

    use Queue::Base;

    # construction
    my $queue = new Queue::Base;
    # or
    my $queue = new Queue::Base(\@elements);
 
    # add a new element to the queue
    $queue->add($element);
 
    # remove the next element from the queue
    if (! $queue->empty) {
        my $element = $queue->remove;
    }
    # or
    $element = $queue->remove;
    if (defined $element) {
        # do some processing here
    }
 
    # add/remove more than just one element
    $queue->add($elem1, $elem2 ...)
    # and
    @elements = $queue->remove(5);

DESCRIPTION

The Queue::Base is a simple implementation for queue structures using an OO interface. Provides basic functionality: nothing less - nothing more.

METHODS

Constructor

new [ELEMENTS]

Creates a new empty queue.

ELEMENTS is an array reference with elements the queue to be initialized with.

Methods

add [LIST_OF_ELEMENTS]

Adds the LIST OF ELEMENTS to the end of the queue.

remove [NUMBER_OF_ELEMENTS]

In scalar context it returns the first element from the queue.

In array context it attempts to return NUMBER_OF_ELEMENTS requested; when NUMBER_OF_ELEMENTS is not given, it defaults to 1.

remove_all

Return an array with all the elements in the queue, and clears the queue.

size

Returns the size of the queue.

empty

Returns whether the queue is empty, which means its size is 0.

clear

Removes all elements from the queue.

CAVEATS

The module works only with scalar values. If you want to use more complex structures (and there's a big change you want that) please use references, which in perl5 are basically scalars.

AUTHOR

Alexei Znamensky << <russoz@cpan.org> >>

Farkas Arpad << <arpadf@spidernet.co.ro> >>