NAME

Data::Queue - Order/Unordered stack

SYNOPSIS

use Data::Queue;

my $stack=new Data::Queue;

my $id=$stack->add($job);

while($stack->has_next) {
  my ($id,$job)=$stack->get_next;
}

DESCRIPTION

Stack, with the ablity to add and remove elements by id on the fly. Elements go in and out of the stack in the id order.

OO Methods

  • my @ids=$stack->add(@list)

    Adds a list of objects onto the stack

    Arguments:

    @ids:  List of ids relative to @list
    @list: List of elements to put on the stack
  • my ($id,$value)=$stack->get_next

    Returns the next id=>value pair from the set.

  • if($stack->has_next) { ... }

    Returns a Data::Result object, when true, it is safe to call $stack->get_next

  • if($self->has_id($id)) { ... }

    Returns a Data::Result object:

    When true:  it contains the object from the stack
    When false: it contains an error message
  • my $id=$stack->add_by_id($id=>$obj);

    Adds the element pair to the stack, with a given id, if the id existed the old element is removed.

  • $stack->remove($id)

    Removes the $id from the stack

  • $self->rebuild_stack

    Internal method for rebuilding the internal stack as needed.

  • my $total=$stack->total

    Returns the total number of elements on the stack

AUTHOR

Mike Shipper Mike Shipper <AKALINUX@CPAN.ORG>